게임 오브젝트의 Life Cycle은 아래와 같은 순서로 흐릅니다.
우리가 입력하는 코드는 위 순서를 따라서 실행됩니다.
각각의 Life Cycle 함수들을 순서대로 나열해보면 다음과 같습니다.
초기화
Awake -> Start
활성화
OnEnable
물리
FixedUpdate
게임로직
Update -> LateUpdate
비활성화
OnDisable
해체
OnDestroy
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cube : MonoBehaviour
{
// Start is called before the first frame update
void Awake()
{
Debug.Log("Awake 함수"); //오브젝트 생성 시 최초 1회 실행
}
private void OnEnable()
{
Debug.Log("OnEnable 함수"); //오브젝트가 활성화 될 때마다 실행
}
void Start()
{
Debug.Log("Start 함수"); //업데이트 시작 직전, 최초 1회 실행
}
private void FixedUpdate()
{
Debug.Log("FixedUpdate 함수"); // 물리연산을 하기전에 실행되는 업데이트함수. 주로 물리연산 코드를 넣음.
// 컴퓨터 성능과는 상관 없이 고정된 주기로 반복실행되는 함수. CPU 부하가 높다.
}
// Update is called once per frame
void Update()
{
Debug.Log("Update 함수"); //물리 연산에 필요한 로직을 제외한 모든 게임로직을 넣는다. 컴퓨터 성능에 따라 다른 실행 주기를 가지고 있다.
//60프레임의 경우 1초에 60번 실행.
}
private void LateUpdate()
{
Debug.Log("LateUpdate 함수"); //모든 업데이트 함수가 실행이 끝난 후 실행되는 업데이트함수.
//보통 캐릭터를 따라가는 카메라나, 로직의 후처리를 담당
}
private void OnDisable()
{
Debug.Log("OnDisable 함수"); //오브젝트가 비 활성화 될때마다 실행되는 함수
}
private void OnDestroy()
{
Debug.Log("OnDestroy 함수"); //오브젝트가 삭제될 때 실행되는 함수
}
}
실행 결과
'유니티 3D기본(Roll A Ball)' 카테고리의 다른 글
7. Vector3 이동함수를 이용한 오브젝트 이동 (0) | 2021.10.14 |
---|---|
6. 키 입력과 오브젝트 이동 (0) | 2021.10.13 |
4. VS 코드 자동 완성 켜기, 유니티 개발 도구 설치, 테마 변경 (0) | 2021.10.12 |
3. C# 스크립트로 디버그 띄워보기 (0) | 2021.10.12 |
2. 프로젝트 생성과 인터페이스 (0) | 2021.10.12 |