[Unity] 오브젝트 라이프사이클

2023. 4. 4. 13:16학부 강의/SW종합설계

0. 출처

 

 


1. 오브젝트 라이프 사이클

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    // 초기화 영역
    void Awake() 
    {
        // 초기화.
        // 게임 오브젝트 생성 시 최초 실행
        // 단 한번만 실행
        Debug.Log("Awake");
    }

    // 활성화
    void OnEnable() 
    {
        // Awake와 Start 사이에서 게임 오브젝트가 활성화 되면 실행
        // 활성화될 때마다 실행
        Debug.Log("OnEnable");
    }

    void Start()
    {
        // 업데이트 시작 직전
        // 단 한번만 실행
        Debug.Log("Start");
    }

    // 물리
    void FixedUpdate()
    {
        // 고정된 일정한 주기마다 실행
        // 프레임 독립적
        // Fixed Timestep으로 실행 주기 설정 (보통 초당 50회 정도)
        // 일정하게 호출되기 때문에 보통 물리 연산 업데이트 많이 사용
        // CPU 부하가 높음
        Debug.Log("FixedUpdate");
    }

    // 게임로직
    void Update()
    {
        // 프레임마다 실행
        // 실행환경에 따라 실행 주기가 지속적으로 변화
        // 물리 연산이 아닌 게임로직 업데이트에 많이 사용 
        // CPU 부하가 높음
        Debug.Log("Update");
    }

    void LateUpdate()
    {
        // Update 종료 후 실행
        // 프레임마다 실행
        // 카메라 이동, 로직의 후처리 등에 사용
        Debug.Log("LateUpdate");
    }

    // 비활성화
    void OnDisable()
    {
        // 모든 업데이트 종료 후 비활성화 시 실행
        // 해체되기 전 혹은 비활성화될 때마다 실행
        Debug.Log("OnDisable");
    }

    // 해체
    void OnDestroy()
    {
        // 오브젝트 삭제 시 실행
        Debug.Log("OnDestroy");
    }
}

 


'학부 강의 > SW종합설계' 카테고리의 다른 글

[Fusion] 102 - Setting Up A Scene  (0) 2023.04.12
[Fusion] 설치  (0) 2023.04.12
[Unity] 게임의 구조와 C#  (0) 2023.04.04
[Unity] 유니티 기초  (0) 2023.04.04
SW종합설계 시작  (0) 2023.04.04