이번 포스팅은 유니티 게임의 기본적인 전체 숲, 작동방식을 알아보고, 그 예시를 구체적으로 살펴본다.
유니티의 작동방식은 크게 다음과 같이
초기화(오브젝트활성화: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이 우측버튼을 의미한다.
'관 > 핫한 유니티 공부' 카테고리의 다른 글
유니티 델타타임과 엔진으로 실제 물리적인 오브젝트 만들기. (2) | 2020.08.17 |
---|---|
유니티의 벡터2 알아보기. (0) | 2020.08.15 |
알아두면 편한 유니티 엔진에서 제공하는 간편한 입력기능. (0) | 2020.08.14 |
스크립트 작성을 위해 알아야 하는 C# 내용. (0) | 2020.08.11 |
필수 유니티 단축키 와 간단한 C#공부. (0) | 2020.08.10 |
댓글