[유니티 입문 강좌 B5] 오브젝트의 생명주기

2465 단어 유니티UnityUnity

Youtube 골드메탈 - 유니티 입문 강좌 B5


오브젝트의 생명주기

1. 초기화

  • Awake() : 게임 오브젝트 실행 시 최초로 실행된다.
  • Start() : 업데이트 시작 전(프레임 시작)에 최초로 실행된다.

2. 물리

  • FixedUpdate() : 물리 연산 업데이트, 고정된 실행 주기로 CPU를 많이 사용하므로 CPU 부하 많다.

3. 게임 로직

  • Update() : 게임 로직 업데이트, 주기적으로 변하는 로직으로 환경에 따라 실행 주기가 다르다.

  • LateUpdate() : 모든 업데이트가 끝난 후 실행된다.

4. 해제

  • OnDestroy() : 게임 오브젝트가 삭제될 때 실행된다.

5. 활성화 및 비활성화

  • OnEnable() : 게임 오브젝트가 활성화 되었을 때 실행된다.
  • OnDisable() : 게임 오브젝트가 비활성화 되었을 때 실행된다.

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

/* 오브젝트의 생명 주기 */
/*
 *      활성화     <--       비활성화
 *        ^                     ^
 *        |                     |
 * 초기화 --> 물리  --> 게임로직 --> 해체
 *
 */      

public class LifeCycle : MonoBehaviour
{
    // 게임 오브젝트 실행할 때 최초로 실행
    void Awake()
    {
        Debug.Log("플레이어 데이터가 준비되었습니다.");
    }

    // 게임 오브젝트가 활성화 되었을 때 실행
    void OnEnable()
    {
        Debug.Log("플레이어가 로그인했습니다.");
    }

    // 업데이트 시작 전에 최초로 실행
    void Start()
    {
        Debug.Log("사냥 장비를 챙겼습니다.");
    }

    // 물리 연산 업데이트 - 고정된 실행 주기로 CPU를 많이 사용 -> CPU 부하 많음
    void FixedUpdate()
    {
        Debug.Log("이동~");
    }

    // 게임 로직 업데이트-주기적으로 변하는 로직 - 환경에 따라 실행 주기가 다르다
    void Update()
    {
        Debug.Log("몬스터 사냥!");
    }
    // 모든 업데이트가 끝난 후 실행
    void LateUpdate()
    {
        Debug.Log("경험치 획득.");
    }

    // 게임 오브젝트가 비활성화 되었을 때 실행
    void OnDisable()
    {
        Debug.Log("플레이어가 로그아웃되었습니다.");
    }

    // 게임 오브젝트가 삭제될 때 실행
    void OnDestroy()
    {
        Debug.Log("플레이어 데이터가 해제하였습니다.");
    }  
}

좋은 웹페이지 즐겨찾기