움짤을 보시면 차이가 느껴지십니까? 좌측 움짤의 경우 컴파일 시간이 굉장히 긴 데 반면에, 우측 움짤은 에디터 플레이 시작 버튼을 누름과 동시에 바로 플레이 되고 있습니다.
Enter Play Mode란?
Unity의 Enter Play Mode설정은 Unity Editor에서 Play Mode로 들어가는 데 걸리는 시간을 최적화하도록 설계된 기능입니다.
- Reload Domain: 스크립팅 상태를 재설정합니다. 모든 C# 스크립트의 백업을 생성하고 원본 스크립트를 언로드한 다음 재생 모드 인스턴스에 대한 새 스크립트를 다시 로드하는 작업이 포함됩니다.
- Reload Scene: 현재 장면을 삭제하고 처음부터 다시 씬을 처음부터 로드하는 작업이 포함됩니다.
더보기
- Unity의 도메인이란?
- 스크립트와 코드가 실행되는 격리된 환경으로 생각할 수 있습니다. 모든 게임의 로직, 변수 및 동작이 존재하는 격리된 공간이라고 생각하시면 됩니다.
- 도메인을 다시 로드한다는 것은 무엇을 의미?
- 도메인을 다시 로드한다는 것은 스크립팅 환경을 재설정하는 것을 의미합니다. 플레이 모드에 들어가면 도메인을 다시 로드하여 스크립트가 초기화된 상태에서 시작되도록 합니다.
- 현재 컴파일된 모든 스크립트 어셈블리를 언로드
- 정적 변수 지우기
- 스크립트 어셈블리를 다시 컴파일한 후 다시 로드
- 위와 같은 프로세스를 거치고 나면 빌드된 게임을 실행할 때와 유사하게 게임이 새로 시작하는 것처럼 동작합니다.
- 도메인을 다시 로드한다는 것은 스크립팅 환경을 재설정하는 것을 의미합니다. 플레이 모드에 들어가면 도메인을 다시 로드하여 스크립트가 초기화된 상태에서 시작되도록 합니다.
- 도메인 다시 로드가 중요한 이유는 무엇입니까?
- 게임이 빌드 및 배포된 상태에서 어떻게 작동하는지 정확하게 테스트하는 데 중요합니다. 도메인을 다시 로드하지 않으면 플레이 모드에 들어갈 때 코드의 특정 변경 사항이나 업데이트가 반영되지 않아 일관되지 않거나 잘못된 동작이 발생할 수 있습니다.
어떤 경우에 Reload Domain이 필요할까요?
가장 대표적으로는 정적 변수를 사용하거나 싱글톤 패턴과 같이 static 키워드를 사용하는 부분이 정상적으로 초기화될 때 필요합니다.
이러한 프로세스는 각 플레이 모드 세션을 깔끔하게 시작(초기화)하지만 시간이 많이 걸릴 수 있습니다. 두 개의 옵션을 비활성화시키면 프로젝트 규모에 따라 50~90%의 속도 향상을 느낄 수 있다고 합니다!
물론, 비활성화 함에 따라 문제들이 발생할 수 있으므로 유의해서 사용하시길 바랍니다!