본문 바로가기
프로그래밍/Unity

[Unity] 유니티 입문 / 유니티 흐름, 라이프사이클

by 정빈e 2022. 3. 20.
728x90

4학년 1학기 수강 신청을 하려는데 2학년 수업에 유니티를 이용한 게임응용실습 수업이 있어서 신청했다. 전에는 없었는데..

 

마침 webXR에도 관심이 있고 threejs로 이것저것 만들어보고 싶은데 잘 안 되기도 해서 일단 배워보려고 한다.

C#언어는 처음 써보는 것인데 어떨지 모르겠다.

 

일단 유튜브에서 먼저 빠르게 공부해보고자 강좌를 들으며 정리를 해봤다.

출처: 유튜브 골드메탈

출처: 유튜브 골드메탈 "유니티 게임오브젝트의 흐름{유니티 입문 강좌B5]" 09:00

초기화: Awake, OnEnable

          활성화: OnEnable

물리: FixedUpdate

게임로직: Update, LateUpdate

          비활성화: OnDisable

해체: OnDestroy

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

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

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

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

    // FixedUpdate : 물리 연산 업데이트
    // 고정된 실행 주기로 CPU를 많이 사용
    // 1초에 약 50회 호출
    void FixedUpdate()
    {
        Debug.Log("이동~");
    }

    // Update : 게임 로직 업데이트
    // 환경에 따라 실행 주기가 떨어질 수 있음
    void Update()
    {
        Debug.Log("몬스터 사냥!!");
    }

    // LateUpdate : 모든 업데이트 끝난 후
    void LateUpdate()
    {
        Debug.Log("경험치 획득");
    }

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

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

 

실행

 

 

아직 머릿속에 잘 정리되지는 않지만 일단 이런 식이 구나 정도로 보고 더 공부하면서 유니티 생명주기를 생각해봐야겠다.

728x90

댓글