Unity 디버깅 가이드

이 문서는 Unity에서의 디버깅 과정을 쉽게 이해할 수 있도록 설명합니다. Unity는 게임과 에디터 프로세스를 위한 다양한 디버깅 옵션을 제공하며, 이는 두 가지 주요 타입—네이티브 C++ 디버깅과 C# 관리 디버깅—으로 나눌 수 있습니다.

1. Windows에서의 디버깅

Unity는 Windows에서 다양한 디버깅 옵션을 제공합니다.

1.1 네이티브 디버깅과 관리 디버깅

  • 네이티브 디버깅: executable (exe) 및 동적 링크 라이브러리 (dll) 파일을 포함하여, 심볼은 프로그램 데이터베이스(PDB)에 저장됩니다.
  • 관리 디버깅: .NET 관리 심볼은 .pdb 확장자를 가진 파일에 저장됩니다.

1.2 심볼 설정

Windows 디버거인 WinDbg에서 Unity 심볼 스토어에 접근하려면 다음 명령어를 입력합니다:

.sympath+ SRV*c:\symbols-cache*http://symbolserver.unity3d.com/
  • SRV: 외부 서버에서 데이터 가져오기
  • c:\symbols: 로컬에 다운로드한 심볼이 저장될 경로
  • http://symbolserver.unity3d.com/: 데이터 가져올 서버 경로

1.3 Visual Studio 설정

Visual Studio에서 디버깅 설정을 하려면 다음 단계를 따릅니다: 1. Tools > Options로 이동 2. Debugging 섹션 확장 후 Symbols 선택 3. 캐시 디렉토리 지정 4. Unity 심볼 스토어와 같은 PDB 파일 경로 추가

2. 라이브 디버깅

라이브 디버깅은 이미 실행 중인 프로세스에 디버거를 연결하는 방법입니다. 디버거가 올바른 작업을 위한 .pdb 파일을 찾도록 하기 위해, 실행 파일의 이름이 게임 이름과 동일해야 합니다.

3. 자동 예외 디버깅 설정

Windows에서 애플리케이션 크래시 시 자동으로 오류 보고를 전송하도록 설정할 수 있습니다. 레지스트리에 다음 내용을 추가하십시오:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
 "Auto"="1"

4. 사후 분석 디버깅

Windows는 크래시 덤프 파일(.dmp 또는 .mdmp)을 조사할 수 있는 기능을 제공합니다. 크래시 덤프는 문제의 원인을 분석하는 데 중요한 데이터를 포함하고 있습니다.

일반적으로 조사할 스택이 하나 이상 존재하며, 이를 분석하기 위해 Visual Studio 또는 WinDbg를 사용해야 합니다.

5. 디버깅 힌트와 요령

디버깅을 효율적으로 하기 위해 Unity의 VS 코드용 UnityMixedCallstack 확장자를 사용하는 것이 좋습니다.

5.1 예외 처리

보통의 관리 예외는 다음과 같은 형태로 나타납니다:

1b45558c()
> mono-2.0-bdwgc.dll!malloc(unsigned int size=12) ...

6. 애플리케이션 덤프 강제 생성

애플리케이션 크래시가 발생할 경우, 다음 절차를 통해 유용한 정보를 획득할 수 있습니다: 1. Windows 레지스트리 열기 2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting으로 이동 3. LocalDumps 폴더가 없으면 생성 4. 아래 키 추가

"DumpFolder"="C:\\Temp"
"DumpCount"=dword:00000010
"DumpType"=dword:00000002

7. Windows용 Visual Studio 프로젝트 생성

Visual Studio를 사용해 Unity 프로젝트를 설정하고, 필요에 따라 디버깅을 수행할 수 있습니다.

8. 추가 리소스

Unity의 공식 웹사이트와 포럼을 참조하여 더 많은 정보와 도움을 받을 수 있습니다.

섹션 설명
1 Windows에서의 디버깅
1.1 네이티브 디버깅과 관리 디버깅
1.2 심볼 설정
1.3 Visual Studio 설정
2 라이브 디버깅
3 자동 예외 디버깅 설정
4 사후 분석 디버깅
5 디버깅 힌트와 요령
5.1 예외 처리
6 애플리케이션 덤프 강제 생성
7 Windows용 Visual Studio 프로젝트 생성
8 추가 리소스

Read more

Unity 매뉴얼 스크립팅 API 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 간단한 해설과 활용 예제들을 포함하고 있습니다. Unity는 게임 개발 플랫폼으로, 스크립팅 API를 통해 게임의 다양한 기능을 제어하고 수정할 수 있습니다. 버전 Unity 스크립팅 API는 여러 버전으로 제공됩니다. 주의 깊게 선택하여 사용하는 것이 중요합니다. 버전 설명 2023.2 최신 기능 및 버그 수정이 추가됨

By 이재협/실장/시스템개발실/PHYSIA

Unity 매뉴얼 스크립팅 API 설명서 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 정보를 제공하며, 버전에 따라 다르게 적용되는 내용들을 설명합니다. 본 문서에서는 주요 내용을 간단히 정리하고 활용 가능 예제를 통해 이해를 돕겠습니다. 기본 개념 Unity에서 스크립팅 API는 게임 오브젝트와 그들의 동작을 제어하기 위한 강력한 도구입니다. 이를 통해 게임의 로직, 물리 엔진, 애니메이션 및 사용자 인터페이스를

By 이재협/실장/시스템개발실/PHYSIA

Unity 스크립팅 API 가이드

이 문서는 Unity의 스크립팅 API에 대해 설명합니다. Unity는 게임 개발을 위한 인기 있는 엔진으로, 강력한 스크립팅 기능을 제공합니다. 이 가이드는 Unity에서 스크립트를 작성하고 사용하는 방법을 이해하는 데 도움을 드립니다. 목차 * Unity 스크립팅 소개 * 기본 스크립트 생성 * 스크립트 사용 예제 * 응용 프로그램 * 참고 자료 Unity 스크립팅 소개 Unity는 C# 프로그래밍 언어를

By 이재협/실장/시스템개발실/PHYSIA