UnityEngine.Debug
- 오류를 미리 감지하기위해 Assert 메소드 제공
- 씬 뷰에서 시각적인 디버깅을 위해 선을 그릴 수 있음 (실제 게임에서는 보이지않는 선)
- 각종 로깅 메소드 제공
Log, LogError, LogWarning을 가장 자주 씀
EmptyObject를 만들고 C# 스크립트를 추가하고 로깅 코드를 작성
void Start()
{
Debug.Log("Start");
}
그 후 유니티 콘솔창에서 Start로그를 확인 할 수 있다.
Update에 로그를 남기면 매 프레임마다 로그가 발생해서 콘솔창을 가득 채워버리는데 동일한 로그가 여러번 쌓이는경우 Collapse 버튼을 눌러서 하나로 묶어서 확인이 가능하다.
변수
- 변수 명에 따라 인스펙터 뷰에 이름이 붙어있다
- Public보다 [SerializeField]를 사용해서 인스펙터에 노출하는걸 권장 (필요할때만 public)
- Start나 Awake에서 초기화를 권장 (변수에따라 선언하자마자 초기화가 안되어있다)
Awake에서 초기화가 불가능해서 Start에서 해야하거나, SerializeField를 붙여서 런타임 이전에 초기화 해야하는경우도 있다.
3개의 변수를 만들어서 인스펙터에 어떻게 표기되나 확인 해 보자.
[SerializeField]
int myValue;
[SerializeField]
int MyValue2;
[SerializeField]
int m_myValue3;
변수명의 시작이 소문자나 대문자나 동일하게 인스펙터에서는 대문자로 보이게된다, 그리고 앞에 m_ 와 같은 방식으로 언더바를 붙여서 네이밍을 한 부분은 자동으로 무시되어있다.
변수명 앞에 언더바를 붙여서 자료형을 표기하는 행위는 무시된다 (헝가리안 표기법)
-> 최근에 이런식으로 이름을 짓는건 권장되지않는다
변수명 중간에 대문자를 넣는경우 띄어쓰기를 붙여서 보여준다 (카멜표기법)
-> 대부분 프로그래머는 카멜표기법을 사용하여 띄어쓰기대신 대문자를 섞어서 쓴다.
소스코드에서 값을 초기화해도 인스팩터에서 값을 변경했다면 코드의 초기값은 무시된다.
https://fastcampus.co.kr/dev_online_game
C#과 유니티로 배우는 게임 개발 올인원 패키지 Online. | 패스트캠퍼스
현직 게임업계 게임 개발자 직강 C# 프로그래밍부터 게임 물리와 수학까지 모두 정복!
fastcampus.co.kr
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.