본문 바로가기
관/핫한 유니티 공부

유니티의 작동방식 파악하기.

by 4차원 박스 2020. 8. 12.

 

이번 포스팅은 유니티 게임의 기본적인 전체 숲, 작동방식을 알아보고, 그 예시를 구체적으로 살펴본다.

 

유니티의 작동방식은 크게 다음과 같이

초기화(오브젝트활성화:OnEnable)->물리연산->게임로직(오브젝트비활성화:OnDisable)->해체

이렇게 이루어지며

 

자세한 세부사항을 파고들면 다음과 같다.

<초기화 영역>

Awake: 게임 오브젝트를 생성할 때, 최초로 딱 한번만 실행되는 함수

Start: 업데이트(Update메서드를 말한다) 시작 직전, 최초로 딱 한번만 실행되는 함수

 

<물리연산 영역>

FixedUpdate: 물리 연산 업데이트 함수, 고정된 실행주기로 CPU를 많이 사용한다.

 

<게임로직 영역>

Update: 게임 로직 업데이트 함수, 60프레임, 사용되는 컴퓨터 환경에 따라 실행주기 떨어질 수 도 있음

LateUpdate: 모든 업데이트 함수 실행 후 마지막으로 실행되는 함수 , ex) 캐릭터를 따라가는 카메라 처리

 

<해체 영역>

OnDestroy: 게임 오브젝트가 삭제될 때 실행.

 

<게임 오브젝트는 삭제하지 않고 켜고 끌수도 있다. 활성화, 비활성화>

활성화- 초기화 영역과 물리연산 사이에 위치함, OnEnable: 게임 오브젝트가 활성화 되었을때

비활성화 - 모든 업데이트가 끝난 후, OnDisable: 게임 오브젝트가 비활성화 되었을 때

 

활성화 비활성화는 유니티 엔진에서 하이어라키창에 있는 오브젝트를 선택후

인스펙터 창에 있는 체크박스를 통해 수동으로 활성화와 비활성화를 할 수 있다.

 

 

아래 예시를 통해 보다 직관적으로 파악해 본다.

<Update만 사용하여 키보드 마우스로 오브젝트 이동하기>

 

주요사용함수 Input 함수이다.

 

Input.anyKeyDown 은 게임안에서 마우스든 키보드는 눌렀을때 실행된다. 부울값으로 참(true) 을 반환한다.

 

Input.anyKey 는 아무키를 계~속 꾹 누르고 있을때 부울값으로 참(true)을 반환한다.

 

누르는 경우는 3가지가 있다

1. 누를 때(down) 2. 꾹 누를 때(stay) 3. 누르고 뗄 때(up)

 

if (Input.GetKeyDown(KeyCode.Return)) //리턴은 키보드 엔터를 뜻한다. ESC Escape 이다.

Debug.Log("템 구입함");

 

if (Input.GetKey(KeyCode.LeftArrow))

Debug.Log("왼쪽 이동중");

 

if (Input.GetKeyUp(KeyCode.RightArrow))

Debug.Log("오른쪽 이동 중지");

 

GetKey 는 키보드 버튼 입력을 받으면 부울값 참을 반환

 

마우스입력은 다음과 같다.

 

 

if (Input.anyKeyDown)

Debug.Log("아무키");

 

if (Input.GetMouseButtonDown(0))

Debug.Log("총 발사");

 

if (Input.GetMouseButton(0))

Debug.Log("필살기 모으는중");

 

if (Input.GetMouseButtonUp(0))

Debug.Log("필살기 발사");

 

이런식으로 작동하며. 매개변수를 숫자로 받는다 0,1 을 대표적으로 받으며 0이 왼쪽버튼을 의미하고 1이 우측버튼을 의미한다.

댓글