1. 초기화를 위한 이벤트 함수
Awake(), Start(), OnEnable()
2. 업데이트를 위한 이벤트 함수
Update(), LateUpdate(), FixedUpdate()
3. 오브젝트 파괴를 위한 이벤트 함수
OnDestroy()
4. 종료를 위한 이벤트 함수
OnApplicationQuit(), OnDisable()
1. 초기화를 위한 이벤트 함수
초기화 함수 호출 순서 : Awake() -> OnEnable() -> Start()
Awake()
private void Awake()
{
Debug.Log("Awake함수가 실행되었습니다.");
}
- 현재 씬에서 게임오브젝트가 활성화 되어 있을 때 1회 호출(활성화되는 시점에 호출)
Start()
private void Start()
{
Debug.Log("Start함수가 실행되었습니다.");
}
- 현재 씬에서 게임오브젝트와 컴포넌트가 모두 활성화 되어 있을 때 1회 호출
- 첫 번째 업데이트 함수가 실행되지 직전에 호출
OnEnable()
private void OnEnable()
{
Debug.Log("OnEnable함수가 실행되었습니다.");
}
- 컴포넌트가 비활성화 되었다가 활성화 될 때 마다 호출
2. 업데이트를 위한 이벤트 함수
업데이트 함수 호출 순서 : Update() -> LateUpdate()
Update()
private void Update()
{
Debug.Log("Update함수가 실행되었습니다.");
}
- 현재 씬이 실행된 후 컴포넌트가 활성화되어 있을 때 프레임마다 호출
(FPS 60이면 Update() 함수가 1초에 60번 호출)
LateUpdate()
private void LateUpdate()
{
Debug.Log("LateUpdate함수가 실행되었습니다.");
}
- 현재 씬에 존재하는 모든 게임오브젝트의 Update() 함수가 1회 실행된 후 실행된다.
(FPS 60이면 Update() 함수가 1초에 60번 호출)
활용 예)
플레이어 캐릭터, 카메라와 같이 서로 다른 오브젝트가 존재할 때 플레이어 캐릭터를 쫓아다니는 카메라를 구현한다면?
-> 플레이어 캐릭터가 Update()를 이용해 움직이고 난 후 카메라는 LateUpdate()에서 플레이어의 위치를 바탕으로 이동을 한다.
FixedUpdate()
private void FixedUpdate()
{
Debug.Log("FixedUpdate함수가 실행되었습니다.");
}
- 프레임의 영향을 받지 않고 일정한 간격으로 호출
- Edit - Project Settings - Time 옵션의 Fixed Timestep 변수로 조절 가능
(기본 값 0.02로 0.02초에 1번 호출된다는 뜻, 1초에 50번)
3. 오브젝트 파괴를 위한 이벤트 함수
OnDestroy()
private void OnDestroy()
{
Debug.Log("OnDestroy함수가 실행되었습니다.");
}
- 게임오브젝트가 파괴될 때 1회 호출
- 씬이 변경되거나 게임이 종료될 대도 오브젝트가 파괴되기 때문에 호출된다
4. 종료를 위한 이벤트 함수
OnApplicationQuit()
private void OnApplicationQuit()
{
Debug.Log("OnApplicationQuit함수가 실행되었습니다.");
}
- 게임이 종료될 때 1회 호출
- 유니티 에디터에서는 플레이 모드를 중지할 때 호출된다
OnDisable()
private void OnDisable()
{
Debug.Log("OnDisable함수가 실행되었습니다.");
}
- 컴포넌트가 비활성화 될 때 마다 호출
'게임 > Unity' 카테고리의 다른 글
Unity 2D) 게임오브젝트 물리와 충돌 (0) | 2021.02.28 |
---|---|
Unity 2D) 게임오브젝트 이동 (0) | 2021.02.27 |
Unity 콘솔뷰에 데이터 출력 (0) | 2021.01.15 |
Unity 이미지 출력 방법 (0) | 2021.01.15 |
Unity 기능 및 기본 용어 설명 (0) | 2021.01.15 |