[Unity 기초 - C#] Start(), Awake(), OnEnable() - 초기화 이벤트 함수 비교
기본 개념, 용어도 익히지 않은 채로 무작정 유니티로 게임 개발 따라하기를 하고 있다.
개념부터 잡고 가기엔 너무 지칠 것 같아서 무작정 진행하면서 새로운 모르는 개념들을 하나씩 정리해보려고 한다.
# C# 스크립트에서 Start(), Awake(), OnEnable() 초기화 이벤트 함수 비교
# 이벤트 함수 란?
: 이벤트 함수란 유니티 내부적으로 정해진 시점, 정해진 조건에 자동으로 수행되는 함수이다.
이벤트 함수 내에 내가 원하는 코드를 작성하여 그 코드가 그 시점에 실행될 수 있도록 해준다.
그런데 Awake(), OnEnable(), Start() 함수는 비슷해보이는 시점에 수행되기 때문에 처음 접했을때는 구분하기가 쉽지 않다.
각각의 실행 시점 및 실행 조건을 정리해보자!
# Awake() 함수 란?
: 주로 데이터 초기화 하는 용도로 사용하며, 현재 씬에서 게임오브젝트가 활성화 될 때 1번 호출됨
(컴포넌트가 비활성화 상태에도 호출됨)
# Start() 함수 란?
: Awake()와 유사하게 데이터를 초기화하는 용도로 사용하나,
게임오브젝트와 컴포넌트가 모두 활성화되어 있을 때 1회 실행됨
# OnEnable() 함수 란?
: 컴포넌트가 비활성되었다가 활성화 될 때 마다 수행
※ Awake() -> OnEnable() -> Start() 순서대로 실행됨
[캡처 출처 및 매뉴얼 참고] https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html
이벤트 함수의 실행 순서 - Unity 매뉴얼
Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.
docs.unity3d.com
※ 이 포스팅은 인프런 유니티 강좌(따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 02)를 따라 실습하면서
생소한 개념에 대해 정리하는 중입니다. 해당 개념은 인프런 유니티 강좌(고박사 유니티 기초)를 참고해 작성하였습니다.
초보자가 정리하는 글이여서 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하겠습니다:)