Unity Play Mode 실행 속도 최적화 팁
✅ 1. 씬 최소화 (테스트용 씬 따로 만들기)
테스트할 때는 꼭 필요한 오브젝트만 있는 경량 테스트 씬을 만들어서 작업해.
복잡한 씬은 오브젝트 수가 많고, 역직렬화 비용이 커서 느림.
실제 플레이 전에 MainScene 같은 거 로드하는 구조로 하면 좋아. (SceneManager.LoadScene() 등)
✅ 2. 스크립트 컴포넌트 최소화
Play 누를 때 유니티는 모든 MonoBehaviour의 Awake(), OnEnable(), Start() 호출 준비를 해야 해.
필요 없는 컴포넌트는 비활성화하거나, 테스트에 필요 없는 부분은 주석처리해서 줄이기.
예: UI 관련 컴포넌트가 많으면 그 자체로도 느려짐 → 테스트 땐 비활성화
✅ 3. Editor 전용 코드 조건부 처리
#if UNITY_EDITOR 안에 있는 코드들이 불필요하게 실행되지 않게 해.
또, Editor 폴더 안에 넣어야 Editor 관련 클래스들이 플레이 모드에서 로딩되지 않아.
#if UNITY_EDITOR
Debug.Log("이건 에디터 전용 코드");
#endif
✅ 4. [ExecuteAlways], [InitializeOnLoad] 피하기
에디터 모드에서도 계속 돌아가는 애노테이션은 가능한 피하거나 꼭 필요한 곳에만 사용.
예: ExecuteAlways 붙어 있는 스크립트는 씬 열릴 때마다 실행돼서 느려짐.
✅ 5. ScriptableObject 활용
자주 바뀌지 않는 설정 값이나 리소스는 ScriptableObject로 따로 빼두면 인스펙터에서 편하게 관리 가능하고, 초기화 부담도 줄어듦.
✅ 6. 콘솔 로그 줄이기
Debug.Log()도 많아지면 에디터에서 내부적으로 쌓이면서 성능 저하됨.
특히 Update() 안에 Debug.Log() 넣어두면 지옥 열림…
✅ 7. 씬 내 라이트 설정 간소화
리얼타임 라이트나 복잡한 GI 설정은 테스트 시엔 Off 해두는 게 좋아.
쉐도우 해제, 빌트인 라이트 맵 사용, 라이팅 모드 Bake 등도 적용해볼 수 있어.
✅ 8. 에셋 임포터 & Addressable 분리
프로젝트 규모가 크면, 리소스를 Addressable로 분리해서 필요한 순간만 로드하도록 하면 씬 전환 및 실행 속도에 큰 차이 있음.
✅ 9. 플레이 모드 진입 설정 확인
Unity Preferences > General > Enter Play Mode Options
여기서
Reload Scene (씬 다시 불러오기)
Reload Domain (스크립트 다시 로딩하기)
둘 다 체크되어 있으면 느려.
초기화가 꼭 필요하니까 Reload Domain은 체크해두고,
Reload Scene만 꺼보는 것도 속도에 도움이 됨.