오브젝트 라이프 싸이클
초기화 영역
Awake
게임 오브젝트가 최초로 생성되어 생겨날때, 한번만 실행 된다.
Start
Update 시작전에 한번 실행 된다.
OnEnable
게임 오브젝트가 활성화 되었을 때 실행된다.
키고 끌때 실행된다고 생각하면 된다.
비활성화/활성화를 자주 반복하게 되면 계속 실행이 된다.
반면, Awake는 생성될때여서 한번만 실행된다.
물리 연산 영역
FixedUpdate - 프레임 영역
물리 연산을 하기전에 실행되는 함수이다.
고정된 실행 주기로 CPU를 많이 사용하여 부하가 많이 생긴다. 기본적 로직만 넣는다
게임 로직 영역
Update - 프레임 영역
환경에 따라 실행 주기가 떨어져서 가변적으로 변할 수 도있다.
게임 프레임 당 한번로 실행 된다.
LateUpdate - 프레임 영역
모든 업데이트가 끝난 후 사용된다.
OnDisable
게임 오브젝트가 비활성화 될때 실행된다.
해체 영역
OnDestroy
게임 오브젝트가 삭제될때 실행된다.
사용자 입력 - 1.키 입력
Input
게임 내에서 입력을 관리하는 클래스이다.
Input.anyKey
아무 입력을 받고있을떼 true (bool)값을 반환한다.
anyKeyDown
아무 입력이 한번 눌렸을때 값을 반환한다.
anyKeyup
아무 입력이 한번 눌리고 땠을때 값을 반환한다.
KeyCode
키보드안의 다양한 코드들에 대해서 관리하는 클래스이다.
대표적인 멤버변수로는 키의 값을 반환해 주는 KeyCode.(특정 키 코드)가 있다.
Input.GetKey/Down/Up
아무 키보드 버튼을 입력받으면 true 값을 반환한다.
GetKey~는 함수로 취급이 되며, 파라미터안에 KeyCode.특정 키 코드 를 입력하여 특정 키의 값을 받을 수 있다.
GetMouseBoutton/Up/Down
마우스 버튼의 입력을 받으면 true값을 반환하는 함수이다.
파라미터에는 0이나 1을 넣으면 되는데,
0은 마우스 왼쪽 클릭을, 1은 마우스 오른쪽 클릭을 뜻하는 값이다.
사용자 입력 - 2.버튼 입력
InputManager 설정
유니티에서 지원하고 정의해주는 Input이다.
개발자가 특정 키안의 설정을 변경하거나, Size를 늘려서 새로운 키를 추가할 수 있다.
예를 들어, Horizontal이라 정의되는 값은 left, right 혹은 a, d로 되어있다,.
GetButton/Up/Down(" ")
인풋 매니저에서 지정해주는 키를 이용해서 입력 받게 해주는 것이다.
파라미터의 값은 설정에서 봤던 키들을 문자열의 형태로 넣어주면 된다.
사용자 입력 - 3.축 입력
GetAxis(" ")
InputManager의 Horizontal과 Vertical 값은 GetAxis를 이용해서 누른지 경과한 시간에 따라 0부터 1까지의 실수들을 float으로 반환한다.
수평, 수직 버튼 입력을 받으면 float값을 반환한다.
하지만 확실한 -1, 0, 1를 받고싶으면 GetAxisRaw를 사용하면 된다.
오브젝트 이동 - Transform
게임 오브젝트를 생성하면 반드시 Transform 컴포넌트가 생성된다.
Transform 또한 하나의 클래스이므로 스크립트에서 다양한 조작이 가능하다.
transform은 기본으로 존재하는 것이기 때문에, 스크립트상에서 따로 정의해줄 필요가 없다.
즉, 오브젝트는 변수 transform을 항상 가지고 있다.
Translate()
Transform 클래스에 존재하는 함수인데, 벡터 값을 현재의 위치에서 더해주는 역할을 한다.
간단한 사용 예
public class Test : MonoBehaviour
{
void start()
{
Vector3 vec = new Vector3(5, 0, 0);
transform.Translate(vec);
}
}
백터 개념 추가 정보
https://blog.naver.com/gold_metal/221439355107
링크 출처 : 골드 메탈 블로그
'게임 개발 공부 정리' 카테고리의 다른 글
[Unity] 2D 게임 따라 만들기 1 - 20 09 21 ~ 22 (0) | 2020.09.22 |
---|---|
[Unity] UGUI - 20 09 20 (0) | 2020.09.20 |
[Unity] 기초 인터페이스 컨트롤 - 20 09 19 (0) | 2020.09.19 |
[Unity] 호발성 버그, 기본 디버깅 - 20 09 18~19 (0) | 2020.09.19 |
[Unity] C#기초 문법 정리 코드 - 20 09 17 (0) | 2020.09.18 |