유니티는 각 오브젝트마다 일정한 생명주기(Life Cycle)를 가지게 된다. 오브젝트가 지니는 생명주기는 초기화, 업데이트, 종료까지의 흐름을 가지고 있으며, 특정한 단계에서 코드가 실행될 수 있도록 하는 기능을 한다. 주요한 생명주기는 다음과 같다.
1. Awake
: Start 함수 전에 호출되며 게임 오브젝트 생성할 때 최초 1회 실행된다.
2. OnEnable
: 게임 오브젝트가 활성화된 경우에만 Awake와 Start 사이에서 실행된다. 활성화가 될 때마다 호출된다.
3. Start
: 업데이트 시작 직전 최초 실행된다.
4. FixedUpdate
: 물리 연산 업데이트가 될 때 실행된다. 발생 주기는 일정하며 프레임당 여러 번 호출이 가능하다. 그러나 프레임을 고정적으로 계속 호출하므로 cpu 부하가 많이 생길 수 있다.
5. Update
: 게임 로직 업데이트가 될 때 실행되며 이는 매 프레임마다 호출되는 유니티 내장 함수이다.
6. LateUpdate
: 모든 업데이트가 끝난 후 마지막으로 실행된다. 주로 카메라 로직에 사용된다.
7. OnDisable
: 게임 오브젝트가 비활성화 되었을 때 LateUpdate와 OnDestroy 사이에 실행된다.
8. OnDestroy
: 게임 오브젝트가 삭제될 때 실행된다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
private void Awake()
{
Debug.Log("제일 먼저 실행 - Awake");
}
private void OnEnable()
{
Debug.Log("Start 전 실행 - OnEnable");
}
private void Start()
{
Debug.Log("업데이트 전 실행 - Start");
}
private void FixedUpdate()
{
Debug.Log("물리 연산 업데이트 - FixedUpdate / 꾸준히 호출");
}
private void Update()
{
Debug.Log("게임 로직 업데이트 - Update / 매 프레임마다 호출");
}
private void LateUpdate()
{
Debug.Log("모든 업데이트 후 실행 - LateUpdate");
}
private void OnDisable()
{
Debug.Log("게임 오브젝트 비활성화 시 실행 - OnDisable");
}
private void OnDestroy()
{
Debug.Log("게임 오브젝트가 삭제 될 시 실행 - OnDestroy");
}
}
해당 포스트는 골드메탈, [유니티 C# 프로그래밍 기초. 한방에 정리하기 [유니티 입문 강좌 B4], (2018, 12월 22일) 유튜브 강의를 참고하여 작성하였습니다.
Corner Unity
Editor : IJin
[유니티 소소모임] 1주차. 유니티 기초 (Editor: Luna) (4) | 2024.10.04 |
---|---|
[유니티 소소모임] 1주차. 유니티 기초 (Editor: Hetbahn) (0) | 2024.10.04 |
[유니티 소소모임] 1주차. 유니티 기초 (Editor: Borybop) (0) | 2024.10.04 |
[유니티 소소모임] 1주차. 유니티 기초 (Editor: 동동) (0) | 2024.10.04 |
[유니티 소소모임] 1주차. 유니티 기초 (Editor: 니나노) (0) | 2024.10.04 |