골드메탈 유니티 강좌 보고 정리한 내용입니다.
게임오브젝트 생명주기에 대한 코드내용입니다.
LifeCycle.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public class LifeCycle : MonoBehaviour { //#라이프 사이클 // 활성화 <-- 비활성화 // ↓ ↑ //초기화 영역 => 물리 => 게임로직 => 해체 // [프 레 임] //유니티 초기화(Awake(), Start()) // 게임 오브젝트 생성 할 때, 최초 실행 함수(딱 한번만 실행) void Awake() { Debug.Log("플레이어 데이터가 준비되었습니다."); } //활성화 영역. //초기화랑 물리 영역 사이에 위치함. //게임 오브젝트가 활성화 되었을 때 실행 되는 함수 //특징 Awake, Start와 달리 최초 한번만 실행이 아니라 오브젝트가 켜질때 마다 실행이 된다. void OnEnable() { Debug.Log("플레이어가 로그인했습니다."); } // 업데이트 영역으로 들어가기전에 최초 실행 함수 (딱 한번만 실행) void Start() { Debug.Log("사냥 장비를 챙겼습니다."); } //유니티 물리 연산 영역(FixedUpdate()) //유니티 엔진이 물리연산을 하기전에 실행되는 업데이트 함수(초당 여러번 실행되는 함수) 1초에 약 50회 호출 //고유 특징은 컴퓨터 사양은 영향 받지 않고 고정된 실행주기로 cpu를 많이 사용. 고정적으로 프레임을 유지하고 있기 때문에 그만큼 cpu를 많이 사용한다. //그래서 FixedUpdate()는 보통 물리 연산에 관련된 로직만 넣는다. void FixedUpdate() { Debug.Log("이동~"); } //게임 로직 영역(Update(), LateUpdate()) //게임 로직 업데이트, 물리연산에 관련된 로직을 제외한 나머지 주기적으로 변하는 그러한 로직을 넣을때 사용하는 함수 //특징 환경에 따라 실행주기가 떨어질수 있음(컴퓨터 사양의 영향을 받음) //초당 60회 호출 void Update() { Debug.Log("몬스터 사냥!!"); } //모든 업데이트(FixedUpdate(), Update()) 가 끝난후 실행 되는 함수 //보통 케릭터를 따라가는 카메라나 로직의 후처리 이런부분을 구현 한다. void LateUpdate() { Debug.Log("경험치 획득"); } //비활성화 영역 //게임로직영역과 해체 영역 사이에 존재한다. //업데이트가 끝난후에 오브젝트가 비활성화 되거나 삭제될때 실행되는 함수 void OnDisable() { Debug.Log("플레이어가 로그아웃 했습니다."); } //해체 영역 //게임 오브젝트가 삭제되기 직전에 무언가 남기고 삭제되는 의미로 쓰일때 쓰는 함수(게임 오브젝트가 삭제될 때) //Awake()함수랑 반대되는 함수가 될 수 있다. private void OnDestroy() { Debug.Log("플레이어 데이터가 해제되었습니다."); } }
'UNITY' 카테고리의 다른 글
유니티 키보드와 마우스 입력 (0) | 2022.06.30 |
---|---|
유니티 C# 프로그래밍 기초 (0) | 2022.06.29 |
댓글