Unity WebGL 빌드 디버깅 및 문제 해결 가이드
이 문서에서는 Unity에서 WebGL 관련 빌드 디버깅과 문제 해결 방법에 대해 다룹니다. Unity WebGL의 특징과 함께, 빌드 시 발생할 수 있는 문제들을 어떻게 해결할 수 있는지에 대한 정보가 포함되어 있습니다.
1. WebGL 빌드 디버깅 기본 사항
1.1 JavaScript 콘솔 사용
Unity WebGL은 파일 시스템에 직접 접근할 수 없으므로 로그 파일을 작성하지 않습니다. 하지만 모든 로그 정보는 브라우저의 JavaScript 콘솔에 출력됩니다. JavaScript 콘솔을 여는 방법은 다음과 같습니다:
브라우저 | Windows 단축키 | Mac 단축키 |
---|---|---|
Firefox | Ctrl-Shift-K | Command-Option-K |
Chrome | Ctrl-Shift-J | Command-Option-J |
Safari | - | Command-Option-C (Preferences > Advanced > Develop) |
Edge/IE | F12 | - |
1.2 개발용 빌드 생성
디버깅을 위해 Unity에서 개발 빌드를 만들 수 있습니다. Build Settings 창을 열고 Development Build 체크 박스를 선택합니다. 이렇게 하면 프로파일러와 연결할 수 있으며, 출력된 JavaScript 코드에서 사람의 눈으로 읽을 수 있는 함수 이름을 유지합니다.
2. 예외 지원
WebGL은 여러 수준의 예외를 지원합니다. 기본적으로 Unity WebGL은 명시적으로 발생한 예외만 관리합니다. 이 외에도 Full 예외 지원을 활성화하면, 코드에서의 null 참조 및 배열 범위 오류를 감지할 수 있습니다. 하지만 이러한 추가 검사는 성능에 영향을 미칠 수 있으므로 디버깅 목적으로만 사용해야 합니다.
예외 스택 트레이스 출력
스택 트레이스를 얻으려면 System.Environment.Stacktrace
를 사용할 수 있습니다.
3. 문제 해결
3.1 메모리 부족 문제
32비트 브라우저에서 자주 발생하는 메모리 부족 문제에 대한 해결 방법은 WebGL 메모리 관련 문서를 참조하세요.
3.2 파일 유지 문제
Unity WebGL은 IndexedDB를 사용하여 세션 간 파일을 보관합니다. 아래 코드를 사용하여 보류 중인 파일 시스템 작업을 플러시할 수 있습니다.
FS.syncfs(false, function (err) {
if (err) {
console.log("Error: syncfs failed!");
}
});
3.3 잘못된 헤더 검사 오류
잘못된 서버 설정으로 인해 발생하는 오류 메시지는 종종 브라우저 콘솔 로그에서 확인할 수 있습니다. 릴리스 빌드 배포에 대한 자세한 내용은 압축된 빌드 배포 문서를 참조하세요.
3.4 압축 해제 오류
Unity WebGL이 지원하지 않는 LZMA 압축 방식으로 압축된 에셋 번들을 로드하려고 할 때 발생하는 오류입니다. LZ4 압축 방식으로 에셋 번들을 다시 압축하면 문제가 해결됩니다.
4. 결론
이 문서는 Unity WebGL 빌드 시 발생할 수 있는 여러 문제를 해결하는 데 도움이 되는 정보를 제공합니다. 복잡한 트러블슈팅 과정에서도 이 가이드를 통해 효과적으로 문제를 해결 할 수 있습니다.
이 문서를 통해 Unity와 WebGL의 연동에 대한 다양한 문제를 해결하고 디버깅하는 방법을 습득할 수 있습니다. 더 많은 정보는 Unity 공식 웹사이트를 참고하세요.