유니티

[Unity] 이벤트 함수의 실행 순서

simstealer 2022. 7. 7. 14:50
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HelloCode : MonoBehaviour
{
    void Awake()
    {
        // 게임 오브젝트가 생성되어 Start() 함수 전에 한번만 호출된다.
        // 보통 초기화를 진행할 때 사용된다.
        Debug.Log("Awake");
    }

    void OnEnable()
    {
        // 게임 오브젝트가 활성화 되어 있다면 호출된다.
        // gameObject.SetAcive(true)로 활성화 시 에 OnEnable이 호출 된다.
        Debug.Log("OnEnable");
    }

    void Start()
    {
        // 게임 오브젝트 실행 시, 한번만 호출된다.
        // 여기서도 초기화를 진행하는데 쓰인다.
        Debug.Log("Start");

        //Destroy(gameObject, 3f); // 3초 뒤에 게임 오브젝트를 파괴
    }

    void FixedUpdate()
    {
        // 물리에 관련한 움직임을 처리할 때 사용된다.
        // Update가 한번 호출 된다 해도 여러번 호출 될 수 있다.
        Debug.Log("FixedUpdate");
    }

    void Update()
    {
        // 매 프레임마다 호출된다.
        Debug.Log("Update");
    }

    void LateUpdate()
    {
        // 모든 업데이트 함수가 호출 된 후, 마지막으로 호출이 되며, 객체를 따라가게 설정한
        // 카메라를 업데이트 할 떄 호출 된다.
        Debug.Log("LateUpdate");
    }

    void OnDisable()
    {
        // 게임 오브젝트가 비활성화 될 때 호출 된다.
        Debug.Log("OnDisable");
    }

    void OnDestroy()
    {
        // 객체가 제거 될 때 호출된다.
        Debug.Log("OnDestroy");
    }

}