이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
서론
안드로이드의 Log.i, Log.e 와 같은 콘솔 창에 주석과 같이 로그를 띄워주면서 사용하는 것을 매우 많은 개발자들이 손쉬운 디버깅의 도구로 뽑고 있습니다. 유니티에도 같은 기능인 Debug.Log가 있는데 사용 방법과 한계를 알아보도록 하겠습니다.
유니티 디버깅 목차
2. Debug.Log는 만능 해결사?3. 플래그를 이용한 디버깅4. 시각적 디버깅5. 오류의 기록6. 에디터 디버깅7. 모노디벨롭을 통한 디버깅
사용방법
사용 방법은 굉장히 간단합니다. Debug.Log를 쓰고 내용으로 string 타입의 인자들을 넣어주면 됩니다. 상위 클래스인 MonoBehaviour 클래스에서는 어떤 변수든 string으로 변환시켜주는 ToString 함수가 있으므로 편리하게 변수들을 확인 할 수 있습니다. |
Debug.Log의 한계
Debug.Log 는 위와 같이 굉장히 편리하지만 꼭 필요할 때만 쓰는 것이 좋습니다. 다음과 같은 한계점이 있기 때문입니다. 어떠한 함수가 실행되거나 실행 후 변수의 변화 정도를 관찰할 때만 쓰는 것을 추천합니다.
1. 디버깅을 마치고 수동 제거해야한다. 그대로 두면 자원 낭비를 초래한다.2. 알고 있는 변수를 관찰할 때 유용하지만 알지 못하는 오류를 추적할 수 없습니다.
ToString 메소드 재정의
위에서 설명했듯이 ToString 함수는 MonoBehaviour 클래스에 정의되어 있습니다. 이 함수를 현재 클래스에서 재정의해 디버깅을 유용하게 할 수 있는 방법에 대해서 배워보도록 하겠습니다. 오버라이드의 개념을 모르시는 분은 이전 포스팅을 보고 오시길 바랍니다.
위와 같이 사용자의 Hero 의 속성들을 적어주고 ToString 메소드를 재정의합니다. 자동으로 string. Format을 반환하는 것을 볼 수 있습니다. 이 함수는 서로 다른 형식의 값을 포함하는 긴 문자열을 한 줄로 만들 때 유용합니다. {0}, {1} 과 같이 인자를 나열하고 뒤에 파라미터를 통해 대체하도록 합니다. |
위와 같이 속성들을 나열하여 게임 실행 시에 클래스의 정보를 찍어주는 습관을 통해 디버깅을 쉽게 진행할 수 있게 되었습니다. |
반응형
'Frontend > Unity' 카테고리의 다른 글
[유니티 디버깅] ⑥ 에디터 디버깅 (0) | 2016.08.03 |
---|---|
[유니티 디버깅] ④ 시각적 디버깅 (0) | 2016.08.03 |
[유니티 디버깅] ③ 플래그를 이용한 디버깅 (0) | 2016.08.03 |
[유니티 디버깅] ⑦ 모노디벨롭을 통한 디버깅 (0) | 2016.08.03 |
[유니티 디버깅] ① 컴파일 오류 & 콘솔 (0) | 2016.08.02 |
[유니티 C# 기초 강의] 11. 클래스와 다형성 (4) | 2016.07.26 |