반응형

유니티 개발을 할 때 Debugger는 매우 유용합니다. 디버거를 사용하지 않으면 Debug.Log()를 사용하여 디버깅을 하는 것보다 훨씬 빨리 디버깅을 할 수 있습니다. 디버거를 사용하면 원하는 코드 줄에 breakpoint를 잡아 그 코드가 줄 시점에서의 변수에 담긴 값들을 알 수 있기 때문입니다. 편집기 변수에 마우스만 올리면 해당 변수의 값 혹은 객체라면 가진 값들을 모두 보여줍니다.

그런데 VScode Extension 중 유니티 디버거가 올해 초에 Deprecated되어 사용할 수 없게 되었습니다. Visual Studio를 사용하면 유니티 Debugger를 사용할 순 있지만, 무거운 VS 보다 VScode가 가진 장점이 더 많다고 느껴서 방법을 찾아보았습니다.

 

Debugger for Unity

사용하게 된 Extension 마켓 링크입니다.

https://marketplace.visualstudio.com/items?itemName=deitry.unity-debug 

 

Debugger for Unity - Visual Studio Marketplace

Extension for Visual Studio Code - Unity debugger extension (Preview)

marketplace.visualstudio.com

기존 Debugger와 이름이 같은데 오리지널 버전의 Debugger를 포크한 프리뷰 버전입니다. 저는 맥 환경에서 현재 디버거가 잘 동작하고 있습니다. 공식 버전이 아니고 기존 버전을 포크 뜬 것이라 그런지 아쉽게도 불안정하게 동작하지 않을 때가 있었습니다. 그때마다 저는 Vscode를 완전히 종료하고 다시 키거나, Unity를 종료했다가 다시 켜는 방식으로 해결했습니다. 그렇게 하면 다시 디버거가 정상적으로 동작했습니다. 귀찮지만 껐다가 다시 킬만큼 디버깅 툴을 이용하는 것이 주는 이점이 컸기에 계속 이 디버거를 사용 중입니다.

 

Debugger 사용법

위 Extension을 설치 후 디버깅 설정에서 Unity Editor로 설정하기만 하면 디버깅 툴을 사용할 준비는 끝납니다.

unity debugger

  1. 원하는 곳에 Breakpoint를 잡습니다. 코드 편집기 좌측에 라인 넘버 옆을 클릭하면 생기는 붉은색 동그라미가 Breakpoint입니다.
  2. 유니티에서 플레이를 하지 않은 상태에서 VSCode 디버깅 시작을 시작합니다.
  3. 호출 스택이 채워지는 것을 확인합니다. 호출 스택이 채워지지 않는다면 VScode나 유니티 혹은 둘 다 종료하여 재시작합니다.
  4. 유니티에서 플레이를 누릅니다.
  5. 디버거가 Breakpoint에서 멈추는 것을 확인할 수 있고 (아주 작은) 디버거 UI에서 버튼을 눌러가며 디버깅을 할 수 있습니다.
  6. 편집기에서 변수 이름에 마우스를 올리면 breakpoint에서 멈춘 시점에 변수에 담긴 값들을 알 수 있습니다.

debugging breakpoint
Breakpoint 잡기
정상적으로 쌓인 호출스택
아주 작은 디버깅 UI
Debug.Log 없이도 변수에 담긴 값을 원하는 시점에 확인 할 수 있습니다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기