본문으로 바로가기

Unity의 모든 스크립트들은 아래의 그림처럼 순서대로 실행되지만 이것은 각각의 스크립트가 실행되는 순서이기 때문에, 

(A 스크립트의) Awake => Start => (B 스크립트의) Awake =>  Start 순으로 실행된다.

(실제로 조정하지 않는한 A와 B 중 무슨 스크립트가 먼저 실행될지는 모른다. 예시일뿐!)

이벤트 함수의 실행 순서 - 일부분

[이미지 출처 유니티 공홈] https://docs.unity3d.com/kr/2022.3/Manual/ExecutionOrder.html

 

활용을 위해 꼭 앞에 실행되어야 하는 스크립트가 있다. 이럴땐 어떻게 해야하는가!

 

지금까지는 최대한 각 스크립트를 인용하며 순서대로 맞춰왔다. 하지만 객체지향을 배운 지금은 이것이 얼마나 서로의 의존도를 높이는 일인지 알기 때문에, 다른 방법을 물색해보았고, 아주 쉽게 스크립트의 순서를 정할수있는 방법을 찾았다.

 

Script Execution Order 을 사용하는 것이다.

Edit > Project Settings 에 위치해있으며, 클릭하면 이런 화면을 볼 수 있을 것이다

엔진 내부의 스크립트들, 자세히 보면 모두 익숙한 이름들이다. 

 

이 곳 우측 하단에 + 버튼을 누르면 원하는 스크립트를 설정할 수 있다.

낮은 값일수록 먼저 실행, 높은 값일수록 나중에 실행된다.

이 곳에 있는 스크립트 외의 스크립트들은 Default Time에 들어간다.

 

*주의사항* 항상 -1 순서로 지정되는 시네머신, 카메라와 관련된 스크립트라면 잘 고려하여 설정해야할 것 같다.

 

 

 

아래는 Script Execution Order 리스트에 순서 조정이 필요한 스크립트를 실제로 추가해본 사진이다.

시네머신과 관련이 없어 같은 순서로 두었다

'Game Development > Unity' 카테고리의 다른 글

[Unity] SendMessage  (1) 2024.09.01
[Unity] Raycast(레이캐스트)  (0) 2024.09.01
[Unity] 터레인 (Terrain) 생성  (0) 2024.08.20
[Unity] Animator  (0) 2024.02.20
[Unity] 2D게임 공부중 버그 : Scale 설정  (0) 2024.02.14