출처 : 유니티 메뉴얼 : https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html
다음 그림은 스크립트의 유효기간 동안 이벤트 함수의 순서와 반복 처리를 정리 한 것입니다.
자주 사용되는 함수 정리
Awake() : 스크립트가 실행될 때 딱 한번만 호출됨. Start함수가 호출되기 전에 먼저 실행되고.
스크립트가 비활성화돼 있어도 실행된다고 함. 코루틴으로는 실행 불가능.
Start() : Update() 함수 호출전에 딱 한번만 호출된다. Awake()와 다른점은 스크립트가 활성화 되어있어야 호출된다는 점.
다른스크립트의 Awake()가 모두 호출된 후에 실행된다. 코루틴으로 실행 가능하다.
Update() : 매 프레임 마다 호출되는 함수로 주로 게임의 핵심 로직을 여기에 작성한다. 스크립트가 활성화 되어 있어야 실행된다.
LateUpdate() : 모든 Update()함수가 호출되고 나서 한 번씩 호출된다. 순차적으로 실행하는 로직에 사용하면 좋고, 카메라 이동 로직에 주로 사용된다고
한다. 마찬가지로 스크립트가 활성화돼 있어야 실행이 된다.
FixedUpdate(): 이 함수는 Update()보다 자주 호출되는 경우가 많다. 프레임 속도가 낮은 경우에는 프레임마다 여러번 호출 될 수도 있다.
그러나 프레임 속도가 높은 경우에는 프레임간에 호출 될 수는 없다. 모든 물리적 특성 계산 및 업데이트는 FixedUpdate() 이후에 발생한다.
그리고 이 함수 내에서는 Time.deltaTime 값을 곱할 필요가 없는데 왜냐하면 프레임 속도와 독립적으로 FixedUpdate()만의 신뢰 할 수 있는 타이머에서 호출되기 때문이라고 한다. 타이머에 따라서 발생하는 주기가 일정하다.
(Edit -> Project setting -> Time 메뉴에 들어가면 발생 주기를 직접 입력 할 수 있다.)
OnEnable() : 게임 오브젝트 또는 스크립트가 활성화됐을 때 호출된다. 코루틴으로는 실행이 불가능.
OnDisable() : 게임 오브젝트 또는 스크립트가 비활성화됐을 때 호출된다. 코루틴으로는 실행이 불가능.
*주의 : 오타를 잡아주지 못하기 때문에 스펠링을 정확하게 써야 원하는 방향으로 작동한다.
'프로그래밍 > 유니티' 카테고리의 다른 글
유니티 비주얼스튜디오 ctrl + ' 단축키 설정법 (0) | 2017.03.14 |
---|---|
다이나믹 메시 (0) | 2017.01.04 |
이벤트 활용 (0) | 2016.11.11 |
Physics.OverlapSphere,Quaternion.Lerp (0) | 2016.11.10 |
Coroutine (0) | 2016.11.09 |