카테고리 없음

유니티 프로파일링과 비주얼 스튜디오 디버깅

이황충 2024. 6. 28. 21:35

 

유니티 게임개발캠프 TIL 46일차

 

유니티 프로파일링 툴

 

유니티 프로파일러는 게임 성능 최적화에 필수적인 도구입니다. 성능 병목 현상을 식별하고 게임이 CPU, GPU, 메모리 및 기타 리소스를 어떻게 사용하는지에 대한 통찰력을 제공합니다. 유니티 프로파일러 사용 방법은 다음과 같습니다:

  1. 프로파일러 열기:
    • Window > Analysis > Profiler로 이동하여 프로파일러 창을 엽니다.
  2. 성능 데이터 기록:
    • 프로파일러 창에서 Record 버튼을 클릭하여 기록을 시작합니다.
    • 에디터에서 게임을 실행하여 데이터를 수집합니다.
  3. 데이터 분석:
    • 프로파일러는 여러 모듈(CPU, GPU, 메모리 등)을 표시합니다.
    • 특정 모듈을 클릭하여 자세한 데이터를 확인합니다.
    • 타임라인을 사용하여 특정 프레임을 확대하고 성능 급증을 분석합니다.
  4. 주요 모듈:
    • CPU 사용량: 게임의 다른 부분에서 소비된 CPU 시간을 보여줍니다.
    • GPU 사용량: GPU 부하 및 렌더링 성능에 대한 세부 정보를 제공합니다.
    • 메모리: 메모리 할당 및 사용량을 표시하여 누수 또는 과도한 메모리 사용을 식별하는 데 도움을 줍니다.
  5. 깊은 프로파일링:
    • 더 자세한 데이터를 위해 Deep Profiling을 활성화하지만, 게임이 상당히 느려질 수 있습니다.
    • 특정 문제를 분석하기 위해 선택적으로 깊은 프로파일링을 사용합니다.

비주얼 스튜디오를 통한 디버깅

디버깅은 유니티 프로젝트의 오류를 식별하고 수정하는 데 매우 중요합니다. 비주얼 스튜디오는 유니티와 원활하게 통합되어 강력한 디버깅 도구를 제공합니다. 시작하는 방법은 다음과 같습니다:

  1. 비주얼 스튜디오 설정:
    • 게임 개발용 유니티 워크로드가 포함된 비주얼 스튜디오가 설치되어 있는지 확인합니다.
    • 유니티 프로젝트를 열고 Edit > Preferences > External Tools로 이동합니다.
    • External Script Editor를 비주얼 스튜디오로 설정합니다.
  2. 디버거 연결:
    • 비주얼 스튜디오에서 스크립트를 엽니다.
    • 줄 번호 옆의 여백을 클릭하여 브레이크포인트를 설정합니다.
    • 유니티에서 비주얼 스튜디오의 Run > Attach to Unity로 이동합니다.
  3. 브레이크포인트 사용:
    • 게임이 브레이크포인트에 도달하면 일시 정지되고 변수 검사, 코드 단계별 실행 및 식 평가를 할 수 있습니다.
    • F10을 눌러 코드 한 줄을 넘어가고 F11을 눌러 메서드 안으로 들어갑니다.
    • F5를 눌러 다음 브레이크포인트까지 게임을 계속 실행합니다.
  4. Watch 및 Immediate 창:
    • Watch 창을 사용하여 특정 변수를 모니터링합니다.
    • Immediate 창을 사용하여 디버깅 중에 식을 평가하고 명령을 실행합니다.
  5. 예외 처리:
    • 비주얼 스튜디오는 예외 발생 시 중단하여 오류가 발생한 위치와 이유를 식별하는 데 도움을 줍니다.
    • Debug > Windows > Exception Settings로 이동하여 이를 구성합니다.

유니티 단축키 팁

  1. 씬 뷰 카메라 고정: Shift + F
  2. 격자 이동: Ctrl 키를 누른 상태로 오브젝트 이동
  3. 꼭짓점 이동: V 키를 누른 상태로 오브젝트 이동
  4. 계층구조 전부 열기: Alt 키를 누르고 계층구조 드롭버튼 클릭
  5. 창 전체화면: Shift + Space
  6. 창 추가: 창 햄버거 버튼 클릭 후 Add Tab 선택 (예: 인스팩터 창 여러 개 추가 가능)
  7. 하이어라키에서 컴포넌트 검색: t: 컴포넌트_이름 (예: t: Transform)
  8. 특정 오브젝트 선택사항 저장 (부대지정): Ctrl + Alt + 1-9
  9. 부대지정 불러오기: Ctrl + Shift + 1-9 (씬이 바뀌면 저장된 정보는 사라짐)