안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2024년 12월 25일 수요일

[유니티][Unity][Copilot] Awake와 Start는 뭐가 더 빨리 호출 되나

  Awake와 Start 메서드는 게임 오브젝트의 초기화 단계에서 호출되지만, 호출 시점에 차이가 있다. 

 

 Awake 메서드

 호출 시점: 게임 오브젝트가 활성화될 때 가장 먼저 호출한다.

 목적: 게임 오브젝트의 초기 상태 설정 및 다른 컴포넌트나 오브젝트와의 초기 설정 작업을 수행한다.

 호출 순서: 같은 게임 오브젝트의 모든 Awake 메서드는 다른 모든 Start 메서드 보다 먼저 호출된다. (중요 - Awake 가 무조건 Start 보다 빠르다)


Start 메서드

호출 시점 : Awake가 호출된 후, 첫번 째 프레임 업데이트 전에 호출된다.

목적 : Awake 메서드가 호출 된 후 수행되는 초기화 작업을 처리한다.

호출 순서: 모든 Awake 메서드가 호출된 후에 호출 된다.


호출 순서 요약

 Awake -> OnEnable -> Start 순서이다.


using UnityEngine;


public class Example : MonoBehaviour

{

    private void Awake()

    {

        Debug.Log("Awake called");

    }


    private void Start()

    {

        Debug.Log("Start called");

    }

}

이렇게 Log를 찍으면 
Awake called
Start called

이런 순서로 찍히게 된다.


요약
 Awake 메서드는 Start 메서드보다 먼저 호출된다. 그렇기에 초기화 작업을 수행할 때, Awake 메서드에서 기본 설정과 초기화 작업을 처리하고, Start 메서드에서 Awake 이 후에 필요한 추가 초기화 작업을 처리하는게 좋다.

** 본 문은 Microsoft Copilot의 도움으로 작성되었습니다.




댓글 없음:

댓글 쓰기