Unity

Unity 스크립트 실행 순서 설정

코샵 2023. 3. 9. 11:49
반응형

스크립트 실행 순서가 중요한 이유

스크립트 내에서 객체를 생성하거나 이벤트 함수를 등록/해지를 하거나 실행할 때 실행 순서가 꼬여 있을 경우 원하는 대로 작동하지 않습니다.

컴포넌트의 Awake 나 Start 시점에 인스턴스 생성을 하거나 액션을 등록하는 경우 실행 순서가 맞지 않는 경우 nullreferenceexception 에러가 발생한다.... 

실행 순서 변경 방법

  • 가장 편리한 방법은 메인 메뉴에서 편집(Edit) > 프로젝트 설정(Project Settings) > 스크립트 실행 순서(Script Execution Order)를 선택하여 스크립트 실행 순서를 변경하는 방법이다.

Apply버튼 위에 + 버튼을 눌러서 스크립트를 추가할 수 있고 Default Time 기준으로 위에 있으면 기본 시간 앞에, 아래에 있으면 뒤에 실행됩니다. 다이얼로그에 없는 스크립트는 기본 시간에 임의의 순서대로 실행된다. 

드래그 드랍으로도 순서를 변경 할 수 있습니다. 드래그 드랍시 숫자가 자동으로 부여되는데 숫자가 바뀌면 모든 스크립트에 새로운 숫자가 할당되는게 아니라 해당 스크립트의 메타 파일이 변경됩니다.

 

  •  스크립트에서 ExecuteInEditMode 속성을 사용

해당 애트리뷰트를 스크립트에 추가하면 플레이 모드가 아닌 동안에도 스크립트의 콜백 함수가 실행된다.

플레이 모드가 종료되어도 오브젝트의 속성이 초기화되지 않으니 사용에 주의해야 한다.