본문 바로가기

C

unity Awake and Start

 

 

Start와 Awake 함수는 스크립트가 실행될 때 자동으로 호출되는 함수입니다.

Awake 함수는 스크립트 컴포넌트가 비활성화된 경우에도 먼저 호출되므로 스크립트와 초기화 사이의 레퍼런스 설정하는데에 많이 활용합니다.

 

Start는 Awake 가 호출된 후 첫번째 Update 직전에 호출되지만 스크립트 컴포넌트가 활성화된 경우에만 호출됩니다.

 

즉, 스크립트 컴포넌트를 활성화하고 Start를 활성화해서 작업을 처리할 수 있습니다.

이런 식으로 초기화 코드의 시작을 정말 필요로 할 때까지 지연시킬 수 있습니다.

 

예를 들어 적 캐릭터가 게임에 진입하고 Awake를 사용해서 적에게 일정한 탄약을 할당하지만

스크립트 컴포넌트를 활성화하고 Start를 사용해 정해진 타이밍에만 사격이 가능하게 만들 수 있습니다.

Start와 Awake는 오브젝트에 연결된 스크립트가 실행되는 동안에 단 한번만 호출됩니다.

  

 

using UnityEngine;
using System.Collections;

public class AwakeAndStart : MonoBehaviour
{
    void Awake ()
    {
        Debug.Log("Awake called.");
    }
    
    
    void Start ()
    {
        Debug.Log("Start called.");
    }
}

 

 

위의 스크립트를 게임 오브젝트에 할당하고

비활성화한 채로 play하게 되면 Awake called. 문구만 뜹니다. 

 

활성화하고 play하게 되면 Awake called. 이후 Start called. 문구가 콘솔에 출력됩니다.

 

이것이 유용한 이유는

오브젝트 설정을 초기화한 후 스크립트를 활성화할 수 있어서 스크립트를 여러 파일로 쪼갤 필요가 없기 때문입니다.

 

 

 

 

 

 

 

 

출처 - https://learn.unity.com/tutorial/awake-mic-start?uv=2019.3&projectId=625e4bf5edbc2a03c37c9827#6268e15bedbc2a53df72a755

'C' 카테고리의 다른 글

unity Vector 수학( 내적 Dot, 외적 Cross )  (0) 2023.05.16
unity Update FixedUpdate  (0) 2023.05.10
unity 변수 및 함수의 범위와 접근성 Scope and Access modifiers  (0) 2023.04.27
unity 루프 loop  (0) 2023.04.26
unity if문  (0) 2023.04.26