[Unity] 시각적 디버깅에 용이한 기즈모(Gizmos)
2022. 3. 11. 15:45ㆍGame Development/Unity
유니티에서 디버깅을 하다 보면, 콘솔과 같은 데이터 문자열보다는 시각적인 선을 통해 확인하고 싶은 경우가 있다.
예를 들면, 적과 다른 캐릭터들에게 플레이어나 다른 오브젝트가 범위 내로 들어올 때 볼 수 있게 해주는 가시선 기능 같은 것이 대표적이다.
지구처럼 공전을 하는 오브젝트가 있을 때, 그 궤도를 볼 수 있는 선으로 표시를 해준다면 더욱 편리할 것이다.
이런 기능들이 지원된다면, 어떻게 게임이 작동하는지 눈으로 직접 확인을 할 수 있는 장점이 있다.
(물론 이런 선들은 실제 인게임에서는 보이지 않는다.)
기즈모(Gizmos)
위에서 설명했던 기능들을 지원하기 위해, 유니티는 기즈모(Gizmos)라는 시각적 도구 장치를 제공한다.
충돌체의 와이어프레임 바운딩 박스(Wire Frame Bounding Box)나 카메라의 프러스텀(Frumstum)과 같은 것 외에도
충돌체, 트리거 볼륨, 탐색 메시(NavMesh) 에이전트, 카메라, 라이트와 같이, 수많은 유니티 오브젝트들이 각자의 시각적 도구 및 기즈모들을 가지고 있다.
기즈모(Gizmos)를 이용하여 가시선 그려보기
MonoBehaviour 클래스의 OnDrawGizmos() 이벤트 함수 내에 코드를 작성하면 가시선들이 그려지게 된다.
선택한 오브젝트의 기즈모만 보이게 하려면 OnDrawGizmosSelected()를 사용한다.
void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawRay(transform.position, transform.forward.normalized * 5f);
Gizmos.color = Color.blue;
Gizmos.DrawWireSphere(transform.position, 4f);
}
- 이 글은 <유니티 C# 스크립팅 마스터하기> 책을 바탕으로 공부한 글입니다.
728x90
반응형
'Game Development > Unity' 카테고리의 다른 글
[Unity] 이벤트 주도적 프로그래밍 (Event Driven Programming) (6) | 2022.04.03 |
---|---|
[Unity] 전처리기 플래그 (Preprocessor Flag)를 이용한 조건 컴파일 코드 작성하기 (0) | 2022.03.08 |
[Unity] SendMessage와 BroadcastMessage (5) | 2022.02.22 |
[Unity] "Universal RP Light 2D"를 스크립트 제어하기 (0) | 2022.02.20 |
[Unity] 일방향 충돌, 측면 마찰 및 반발력을 설정할 수 있는 Platform Effector 2D (0) | 2022.02.19 |