전체 글(279)
-
[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] 2D 게임 오브젝트가 바라보는 방향 전환하기
1. Sprite Renderer의 Flip 속성 이용 Flip 속성을 통해 X축, Y축, 혹은 둘 다 반전에 대한 축으로 설정할 수 있지만, 렌더링만 영향을 받는 단점이 있다. 다음은 2D Capsule 게임 오브젝트를 하나 생성하고, 하위 자식으로 2D Circle 게임 오브젝트를 생성해서 넣어놨다. 캡슐은 상하좌우 모두 반전에 대해 대칭이므로 구분을 할 수 있게, 다른 모양으로 Sprite를 바꿔놨다. 유니티를 통해 위와 같이 실험을 진행했다. 보면 알겠지만, 2D Capsule 게임 오브젝트의 렌더링 부분만 영향을 미친다. 하위 자식으로 생성했던 2D Circle 게임 오브젝트는 아무런 영향이 없는 걸 볼 수 있다. 따라서, Sprite Renderer의 Flip 기능을 이용할 땐 위와 같은..
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