Trouble Shootings(16)
-
[Unity 3D] 애니메이션 Root Motion이 Transform값을 변경시키며 발생한 버그 해결하기
1. 루트 모션(Root Motion)이란? 루트 모션(Root Motion)은 오브젝트의 위치와 회전을 애니메이션이 제어할 수 있도록 허용하는 것을 말합니다. 루트 모션이 활성화된 애니메이션이라면, 해당 애니메이션이 적용된 오브젝트의 트랜스폼(Transform) 값은 영향을 받아 변하게 될 겁니다. 예를 들어, 루트 모션이 적용된 걷는 애니메이션(WALK)은 캐릭터가 걷는 것에 따라 위치 값도 변하게 됩니다. 루트 모션이 적용되지 않았다면 캐릭터는 제자리 걸음을 하겠지요. 2. 루트 모션이 일으킬 수 있는 문제점 물론 스크립트 코드를 작성하여 움직임을 구현하는 것보다 애니메이션을 통해 움직임을 구현하는 것이 훨씬 더 자연스럽습니다. 특히나 시네마틱 영상을 제작하는데엔, 루트 모션이 더욱 더 현실같은 자..
2022.05.24 -
[Unity] 빌드(Build)했을 때, JSON 파일을 읽지 못하는 현상
분명 유니티 에디터 상에서 실행했을 때는 JSON 파일을 잘 읽어왔었습니다. 그런데, 빌드만 하면 읽어오지 못하는 문제가 발생했네요... 이것 때문에 2시간은 삽질한 것 같습니다. 1. 문제의 JSON 파일 읽어오기 코드 using System.IO; using LitJson; private const string jsonFilePath = "/Resources/Json/Narration.json"; private JsonData ReadJsonFile() { if(File.Exists(Application.dataPath + jsonFilePath)) { string jsonString = File.ReadAllText(Application.dataPath + jsonFilePath); JsonData..
2022.03.07 -
[Unity] Visual Studio에서 Unity 디버깅 연결이 되지 않는 경우
Visual Studio가 2022 버전이 나와서 몇 번 써봤는데, 자동 완성 기능부터 해서 UI 측면까지 더 강력하고 이쁘게 변했더라구요. 설레는 마음으로 유니티에서 써보려고 했는데, 연동이 되지 않았습니다. 정확하게 말하자면, 연동은 됐는데 유니티 디버깅을 사용할 수가 없었습니다. 이게 무슨 어처구니 없는 상황인지?... 그래서, 구글링하여 얻은 정보들을 일단 있는대로 다 해봤습니다. 1. 구글링을 통한 시도의 흔적들 External Script Editor에서 Visual Studio가 선택 항목에 있는 경우 Unity Editor 상단 Edit → Preferences → External Tools → External Script Editor를 Visual Studio로 설정 External Sc..
2022.01.13 -
[Unity] Vector의 Set()으로 수정이 안 됐던 이유
유니티 개발을 진행하다 보면, 게임 오브젝트를 움직이거나 회전하는 등 벡터(Vector)를 조작할 일이 많습니다. 그런데, 쓰다보니 Set() 함수가 적용이 안 되는 것을 여러 번 확인한 적이 있었습니다. float x = ... float y = ... float z = ... ... transform.position.Set(x, y, z); // 동작하지 않음 왜 바뀌지 않을까요? 정답은 Vector는 구조체(struct)이므로 value type이기 때문입니다. 값 형식은 스택(stack)에 저장되며, 블록(block)이 끝나는 순간 메모리를 자동 반납하여 사라집니다. 제일 결정적으로 원본이 전달되는 것이 아니라 복사본이 전달된다는 게 큰 특징이구요. transform.position의 구현 부분을..
2022.01.13