유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

1. 유니티 스크립트 에디터 설정

1. Edit -> Preference -> External Script Editor로 들어가서 Visual Studio를 스크립트 에디터로 설정.

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging
유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

위 과정을 거치면 유니티와 Visual Stduio의 연결이 됩니다.

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

위 처럼 Unity에 연결이 뜨면, 유니티와 Visual Studio의 연결이 제대로 된 것입니다.

2. 디버깅 하기 전 설정

1. Visual Studio에서 Break Point를 설정해줍니다.

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

왼쪽 이미지처럼 초록색 영역 부분을 클릭하면 오른쪽 이미지 처럼 "빨간색 점"이 찍히는 것을 확인할 수 있습니다. 이것을 브레이크 포인트(중단점)이라고 합니다.

보통 문제가 있는 부분이라고 생각되는 라인, 동작 결과가 어떻게 되는지 보고 싶은 라인을 중단점으로 찍고 디버깅을 합니다.

2. Visaul Studio에서 상단의 "Unity에 연결" 버튼을 눌러줍니다.

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

이 버튼을 눌러주면 다음 화면과 같이 디버깅모드로 진입됩니다.

3. Unity Editor에서 플레이 버튼을 눌러줍니다.

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging
유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

위와 같이 플레이 상태가 되면 디버깅을 할 준비가 다 되었습니다. 디버깅을 하려면 위의 절차를 무조건 거쳐 주셔야 합니다.

3. 디버깅 하는 법

디버깅을 하려면 우선 보고싶은 코드가 수행되도록 만들어 주어야 합니다.

우선 저는 몬스터 리스트에 값이 잘 추가되고 있는지를 확인하고 싶었습니다. 이를 위해서 몬스터를 추가해주고, 리스트안에 있는 인덱스 출력을 하는 함수를 만들었습니다. 그러나, 값이 두 번 찍히는 상황이 생겨 디버깅을 하게 된 상태입니다.

그래서 IndexCheck를 하는 함수안의 지점에 "중단점"을 설정하고 확인해보았습니다.

우선 IndexCheck함수가 수행되려면, 리스트에 몬스터를 추가하고 IndexCheck 버튼을 눌러 함수를 수행시켜야 하므로

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

Goblin생성 버튼을 누르고, Index Check 버튼을 눌렀습니다. 이 순서를 거치게 되면

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

이런 식으로 Visual Studio에서 코드가 실행되다가 중단점에 걸려 멈춘 것을 볼 수 있습니다.

코드의 실행 흐름을 보는 방법은 두 가지가 있습니다.

  1.  한 단계식 코드 실행 (단축키 : F11)
  2.  프로시저 단위 실행 (단축키 : F10)

@한 단계씩 코드 실행

: 중단점부터 한 줄씩 코드를 실행합니다. 그리고 함수를 만나게 되면 함수 내부로 진입합니다. 함수 내부에서 빠져나오고 싶다면 "Shift+F11"을 눌러 빠져나올 수 있습니다.

@프로시저 단위 실행

: 중단점 이후부터 한 줄씩 코드를 실행합니다. 그러나 함수를 만나면 함수 내부로 진입하지 않고 함수를 실행한 후 다음 문장으로 넘어갑니다.

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

이렇게 보고 싶은 코드로 계속 움직이면서, 초록색으로 체크한 탭들을 선택하면서 보고싶은 변수의 값들을 확인할 수 있습니다. F10 및 F11로 코드를 게속 실행시키다 보면 함수가 끝나고 Unity Editor의 화면으로 돌아갑니다. 

@디버깅이 끊나지 않고, Unity Editor 창이 열리지 않을 때

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

 만약 디버깅 상태에서 Unity Editor의 화면으로 돌아가지 못하면 당황하지마시고, "계속" 버튼을 누르시면 Untiy Editor의 화면으로 되돌아갈 수 있습니다.

@디버깅 종료

유니티 비주얼 스튜디오 디버깅 - yuniti bijueol seutyudio dibeoging

마지막으로 디버깅을 중지하려면 shift+F5를 누르거나 이미지에 보이는 버튼을 눌러주세요.

+) Visual Stduio Code와 Rider의 디버깅 방법도 추가 예정입니다.