using UnityEngine;

public class LifeCycle : MonoBehaviour
{
    // ============= 초기화 단계 =============
    // 게임 오브젝트가 준비될 때 최초로 한 번 실행하는 함수
    void Awake()
    {
        Debug.Log("플레이어가 게임에 들어갈 준비가 되었습니다.");
    }

    // ============= 활성화 단계 =============
    // 게임 오브젝트가 활성화 되었을 때
    void OnEnable()
    {
        Debug.Log("플레이어가 월드에 입장했습니다.");
    }

    // 씬에 들어갈 때 최초로 한 번 실행하는 함수
    void Start()
    {
        Debug.Log("캐릭터가 에렌에 돌아왔습니다.");
    }

    // ============= 물리 단계 =============
    // 유니티 엔진이 물리 연산(Physics)을 하기 전에 실행하는 함수
    // 특징: CPU의 사양에 관계없이 고정된 실행 주기(1초에 50번)로 프레임 호출
    //       CPU를 많이 사용(CPU 부하가 많음)
    void FixedUpdate()
    {
        Debug.Log("캐릭터가 심층던전을 돌러 콜헨으로 이동합니다.");
    }

    // ============= 게임 로직 단계 =============
    // 물리 연산에 관련된 로직을 제외한 나머지 주기적으로 변하는 로직을 구현하는 함수
    // 특징: 매 프레임마다 한 번씩 호출
    //       FixedUpdate와 달리 CPU의 영향이 커 FPS에 따라 호출 간격이 달라짐
    void Update()
    {
        Debug.Log("캐릭터가 심층던전에서 우연히 동료를 만나 던전을 돌고 있습니다.");
    }

    // 모든 Update 영역의 함수 호출이 끝난 뒤 호출되는 함수
    // 캐릭터를 따라가는 카메라 나 후처리 로직
    void LateUpdate()
    {
        Debug.Log("좋은예감?");
    }

    // ============= 비활성화 단계 =============
    // 오브젝트가 비활성화 되었을 때
    void OnDisable()
    {
        Debug.Log("플레이어가 시작화면으로 돌아갔습니다.");
    }

    // ============= 해체 단계 =============
    // Awake와 반대되는 함수
    void OnDestroy()
    {
        Debug.Log("플레이어가 게임을 종료했습니다.");
    }
}

 

1) 게임 오브젝트가 씬에 있는 경우

 

2) 게임 오브젝트가 씬에 없는 경우

 

 

728x90

'Unity🎮 > 이론' 카테고리의 다른 글

Canvas Render Mode: Overlay vs Camera  (1) 2026.01.22
OnEnable()  (0) 2026.01.21
레이캐스트  (1) 2025.07.14
오디오 소스  (2) 2025.07.14
이벤트 시퀀스 / 코루틴  (1) 2025.07.11

+ Recent posts