스크립트 실행 순서가 중요한 이유
스크립트 내에서 객체를 생성하거나 이벤트 함수를 등록/해지를 하거나 실행할 때 실행 순서가 꼬여 있을 경우 원하는 대로 작동하지 않습니다.
컴포넌트의 Awake 나 Start 시점에 인스턴스 생성을 하거나 액션을 등록하는 경우 실행 순서가 맞지 않는 경우 nullreferenceexception 에러가 발생한다....
실행 순서 변경 방법
- 가장 편리한 방법은 메인 메뉴에서 편집(Edit) > 프로젝트 설정(Project Settings) > 스크립트 실행 순서(Script Execution Order)를 선택하여 스크립트 실행 순서를 변경하는 방법이다.
Apply버튼 위에 + 버튼을 눌러서 스크립트를 추가할 수 있고 Default Time 기준으로 위에 있으면 기본 시간 앞에, 아래에 있으면 뒤에 실행됩니다. 다이얼로그에 없는 스크립트는 기본 시간에 임의의 순서대로 실행된다.
드래그 드랍으로도 순서를 변경 할 수 있습니다. 드래그 드랍시 숫자가 자동으로 부여되는데 숫자가 바뀌면 모든 스크립트에 새로운 숫자가 할당되는게 아니라 해당 스크립트의 메타 파일이 변경됩니다.
- 스크립트에서 ExecuteInEditMode 속성을 사용
해당 애트리뷰트를 스크립트에 추가하면 플레이 모드가 아닌 동안에도 스크립트의 콜백 함수가 실행된다.
플레이 모드가 종료되어도 오브젝트의 속성이 초기화되지 않으니 사용에 주의해야 한다.
'Unity' 카테고리의 다른 글
Unity에서 게임 오브젝트 위치 이동 시키기 (0) | 2023.03.18 |
---|---|
연산자란? 연산자 종류 - 단항 연산자, 이항 연산자, 삼항 연산자 (0) | 2023.03.16 |
Unity 코루틴 - Coroutine (0) | 2023.03.10 |
Unity 이벤트 함수 (0) | 2023.03.08 |
Unity 스크립트 작성 시 유용한 애트리뷰트 (0) | 2023.03.02 |