Debugging (Breakpoint)
중단점을 사용하는 방법이에요.
Last updated
중단점을 사용하는 방법이에요.
Last updated
중단점은 테스트 혹은 디버깅을 할 때 활용할 수 있는 기능이에요. 🔍
확인이 필요한 스크립트 로직에 중단점을 추가하면, 플레이 도중에 해당 로직에 멈춘 상태에서 관련된 값들을 확인해볼 수 있어요.
중단점의 자세한 활용 방법은 아래 내용을 확인해주세요. 😉
Script Editor에서 원하는 라인의 왼쪽 공간을 클릭하면, 중단점🔴 을 추가할 수 있어요.
중단점 추가/삭제 단축키 : Pause/Break
중단점을 추가할 때는 다음 사항에 유의해주세요.
스크립트의 첫 번째 라인에는 중단점을 추가할 수 없어요. 😣
내용 없이 비어있는 라인에는 중단점을 추가할 수 없어요. 🤔
중단점과 같은 라인에 있는 코드는, 중단된 시점에서 아직 처리되지 않은 상태라는 것을 기억해주세요. 💭
중단점을 추가한 상태에서, 테스트 플레이를 시작해볼게요. ▶️
플레이를 진행하던 도중, 중단점에 해당하는 라인에 도달하면 테스트 플레이가 멈춰요. ⏸️
오브젝트의 Collision을 처리하는 함수 내부에 중단점을 추가했다면, 캐릭터가 Collision에 닿았을 때 플레이가 멈추게 돼요.
중단점이 추가된 라인에 포함된 함수 혹은 코드들은 스택이라고 해요.
현재 멈춰있는 스택에 대한 정보는, Player Output과 Script Editor에서 확인할 수 있어요. 👁️
추가한 중단점들을 한눈에 확인할 수 있는 탭이에요.
왼쪽 체크 박스☑를 클릭하면, 해당하는 중단점을 사용할지 말지 결정할 수 있어요.
Script Editor에 있는 Breakpoint 탭에서는 원하는 리스트를 더블 클릭🖱️하면, 해당 중단점이 있는 라인으로 이동할 수 있어요.
중단점에 도달했을 때, 어떤 스크립트 및 몇 번째 라인의 중단점인지 확인✅할 수 있는 탭이에요.
함수 내부에 있는 라인에서 중단된 경우, 해당 함수의 이름과 함수가 호출된 라인도 표시해요.
중단점에 도달했을 때, 값을 확인하고 싶은 변수를 추가할 수 있는 탭이에요.
Local 및 Global로 선언된 변수, Player나 Cube 같은 객체에 저장된 변수를 추적할 수 있어요.
추적하고 싶은 변수 이름을 작성 ✏️한 후에, Add 버튼을 클릭하면 추가할 수 있어요.
해당 변수에 아직 처리된 정보가 없다면, 회색🤍으로 표시해요.
Watch 및 Auto 탭에 붉은색❤으로 표시되는 값은, 해당 중단점에서 변경된 값임을 의미해요.
중단점에 도달했을 때, 현재 스택에 있는 변수를 자동으로 표시해주는 탭이에요. 🖨️
변수 이름(Name)과 해당 변수에 저장된 값(Value), 그리고 자료형(Type)을 확인할 수 있어요. 👀
월드 트리에 있는 객체를 변수에 저장했다면, 저장된 변수 이름과 객체의 실제 이름을 같이 표시해요.
스크립트에 Table 변수를 추가했다면, Auto 탭에서 해당 Table의 속성을 확인할 수 있어요. 아래에서 Table의 속성이 어떻게 출력되는지 참고해주세요. 😊
비어 있는 Table의 경우에는, 다음과 같이 출력해요.
Table 내부에 값이 있을 경우, 다음과 같이 출력해요.
Table 변수에 Key와 Value 형태로 저장된 경우, 다음과 같이 출력해요.
현재 중단되어 있는 스택의 정보를 충분히 확인했다면, 다음 라인의 정보를 확인하거나 멈춘 플레이를 다시 이어서 진행할 수 있어요.
아래 작성된 단축키를 활용해보세요. ⌨️
1
1번 키를 누르면, 이어서 테스트 플레이를 진행해요. 다음 중단점을 만나면 다시 플레이가 멈춰요.
2
2번 키를 누르면, 현재 중단점의 바로 다음 라인으로 이동해서 중단해요. 다음 라인에서 호출된 함수를 만난다면, 무시하고 그 다음 라인으로 이동해요.
3
3번 키를 누르면, 마찬가지로 현재 중단점의 바로 다음 라인으로 이동해서 중단해요. 단, 다음 라인에서 호출된 함수를 만난다면, 해당 함수 내부에 있는 코드로 이동해요.
4
현재 중단된 라인이 함수 내부에 있을 경우에, 4번 키를 누르면 해당 함수를 빠져나올 수 있어요. 빠져나온 함수를 호출한 라인의 바로 다음 라인으로 이동해서 중단해요.
변수 정보가 1줄밖에 없는 코드에 중단점을 추가한다면, 중단되었을 때 해당 변수는 Auto 탭에 추가되지 않고, Watch 탭에서도 추적할 수 없어요.
Mesh, Collider 처럼 기본으로 속성을 가지고 있는 객체가 현재 스택에 포함된다면, Auto 탭에서 각 객체의 하위에 속성들을 자동으로 출력해요. 🖨️
해당하는 속성들의 값은 정확하게 출력되지 않을 수도 있다는 점을 유의해주세요. 😥
멀티플레이👥 테스트를 할 때, 중단점에 도달하면, 첫번째 플레이어의 화면만 멈춰요.
해당하는 스택의 정보 또한 첫번째 플레이어👤에서만 추적할 수 있다는 점을 기억해주세요.