프로그래밍 / C++ / 언리얼

Programming/C# | Unity

[Unity] 이벤트 함수 정리

아트성 2022. 7. 7. 15:52

Awake( )

void Awake()
{
    Debug.Log("Awake()");
}

 

오브젝트가 활성화 될 때 단 한번만 실행하는 함수, 모든 변수를 초기화.

스크립트가 비활성화 되고, 오브젝트 활성화 되어있을 때 유일하게 호출되는 함수.

 

 

Start( )

void Start()
{
    Debug.Log("start()");
    Destroy(gameObject, 3f);
}

 

오브젝트가 활성화 될 때 단 한번만 실행하는 함수, 모든 변수를 초기화.
Awake와 달리 스크립트와 오브젝트 둘다 활성화 되어있을때 호출된다.

 

 

OnEnable( )

void OnEnable()
{
    Debug.Log("OnEnable()");
}

    // 오브젝트가 활성화될 때 실행.

 

 

OnDisable( )

void OnDisable()
{
    Debug.Log("OnDisable()");
}

 

    // 오브젝트가 비활성화 될 때 실행.

 

 

 

 

 

FixedUpdate( )

void FixedUpdate()
{
    Debug.Log("FixedUpdate()");
}

    // 델타타임 적용이 필요한 업데이트(물리구현이 필요한 씬에 쓰인다.)

 

 

Update( )

void Update()
{
    Debug.Log("Update()");
}

    // FixedUpdate를 제외한 나머지 업데이트.

 

 

LateUpdate( )

void LateUpdate()
{
    Debug.Log("LateUpdate()");
}

   // 캐릭터를 움직인 후 주로 카메라 움직일때 사용하는 업데이트
    // lateupdate를 쓰면 장점이 카메라가 포지션을 추적하기 전에 캐릭터가 완전히 움직였는지 확인할 수 있다는 장점이 있다.

 

 

 

OnDestroy( )

void OnDestroy()
{
    Debug.Log("OnDestory()");
}

 // 오브젝트가 제거 될 때 실행.

 

 

 

 

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


public class LogTest : MonoBehaviour // 모든 컴포넌트는 MonoBehavior 에 상속받는다. // 
{
    // 오브젝트가 활성화 될 때 단 한번만 실행하는 함수, 모든 변수를 초기화.
    // 스크립트가 비활성화 되고, 오브젝트 활성화 되어있을 때 유일하게 호출되는 함수.
    void Awake()
    {
        Debug.Log("Awake()");
    }

    // 오브젝트가 활성화될 때 실행.
    void OnEnable()
    {
        Debug.Log("OnEnable()");
    }

    // 오브젝트가 활성화 될 때 단 한번만 실행하는 함수, 모든 변수를 초기화.
    // Awake와 달리 스크립트와 오브젝트 둘다 활성화 되어있을때 호출된다.
    void Start()
    {
        Debug.Log("start()");

        Destroy(gameObject, 3f); // 여기서 gameObject는 큐브를 의미함. 3f는 딜레이 시간, 3초뒤에 나 자신을 파괴함. 오브젝트를 파괴시키면 onDestory()가 호출됨을 알 수 있다.

        //Debug.LogError("테스트를 위한 에러 로그");
    }

    // 델타타임 적용이 필요한 업데이트(물리학)
    void FixedUpdate()
    {
        Debug.Log("FixedUpdate()");
    }

    // 단순한 업데이트
    void Update()
    {
        Debug.Log("Update()");
    }

    // 캐릭터를 움직인 후 주로 카메라 움직일때 사용하는 업데이트
    // lateupdate를 쓰면 장점이 카메라가 포지션을 추적하기 전에 캐릭터가 완전히 움직였는지 확인할 수 있다는 장점이 있다.
    void LateUpdate()
    {
        Debug.Log("LateUpdate()");
    }

    // 오브젝트가 비활성화 될 때 실행.
    void OnDisable()
    {
        Debug.Log("OnDisable()");
    }

    // 오브젝트가 제거 될 때 실행.
    void OnDestroy()
    {
        Debug.Log("OnDestory()");
    }
}

오브젝트의 생성과 파괴 과정.

 

 

위의 코드는 유니티의 각 이벤트 함수를 하나씩 적용한 함수들이다.

start() 내부에 Destroy() 함수를 추가해서, 3초뒤에 오브젝트를 파괴하는것을 구현해 보았다.

 

이벤트 함수의 실행 순서는 위의 오른쪽 움짤에서 보다시피 

 

Awake( )OnEnable( )Start( )FixedUpdate( )Update( )LateUpdate( )OnDisable( )OnDestory( )

 

순서로 함수 호출이 일어난 것을 확인할 수 있다.

 

 

반응형