private void Awake()
{
}
Awake 함수는 게임 오브젝트가 장면 안에 생성할때, 최초로 한번만 실행한다.
void Start()
{
}
업데이트 시작 직전, 최초 실행
void FixedUpdate()
{
}
물리 연산을 하기 전에 실행되는 업데이트 함수. 업데이트 함수는 1초에 여러번 작동(대략 50번).
고정된 실행 주기로 CPU를 많이 사용한다.
void Update()
{
}
게임 로직을 업데이트하는 함수. 물리연산 로직을 제외한 나머지 주기적으로 변하는 로직을 넣어준다. 환경에 따라 실행 주기가 떨어질 수도 있다.
void LateUpdate()
{
}
모든 업데이트 영역의 로직이 끝난 후 마지막으로 호출되는 함수. 케릭터를 따라가는 카메라, 로직의 후처리 등을 담당.
void OnDestroy()
{
}
오브젝트가 삭제되기 직전에 무언가를 남기고 삭제할 때.
void OnEnable()
{
}
초기화와 물리 연산 사이에 존재하는 함수. 게임 오브젝트가 활성화 되었을 때 실행
void OnDisable()
{
}
모든 업데이트가 끝난 시점에 존재. 게임 오브젝트가 비활성화 되었을 때 실행
유니티에서 키보드로 입력받을 때 사용하는 Built-In 클래스가 있다. Input
클래스를 사용하면 된다.
Input.anyKeyDown
유니티 게임을 실행하고 나서 키보드나 마우스 아무 입력을 최초로 받을 때 이 파라미터(?)가 호출된다.
bool값을 갖는다.
Input.anyKey
anyKeyDown은 한번 누르면 적용되는데 비해 anyKey는 키를 누르고 있으면 적용된다.
키보드 버튼을 입력을 받으면 True 상태로!!
if (Input.GetKeyDown(KeyCode.Return)
// Return은 엔터를 의미, KeypadEnter은 숫자패드의 엔터
// ESC는 Escape
Debug.Log("아이템을 구입하였습니다.");
키보드 버튼을 누를 때 True
if (Input.GetKey(KeyCode.LeftArrow)
Debug.Log("왼쪽으로 이동 중.");
키보드 버튼을 누르고 있으면 True
if (Input.GetKeyUp(KeyCode.RightArrow)
Debug.Log("오른쪽으로 이동을 멈추었습니다.");
키보드 버튼을 오른쪽에서 누르고 있는 상태에서 떼면 True
마우스 버튼을 입력받으면 True!! 작동원리는 키보드와 같다. 매개변수로는 숫자로 받는다.
0
은 마우스 왼쪽버튼, 1
은 마우스 오른쪽 버튼을 의미
if (Input.GetMouseButtonDown(0))
Debug.Log("미사일 발사!");
마우스 버튼을 누를 때 True
if (Input.GetMouseButton(0))
Debug.Log("미사일 모으는중...");
마우스 버튼을 누르고 있는 중일 때 True
if (Input.GetMouseButtonUp(0))
Debug.Log("슈퍼 미사일 발사!!");
마우스 버튼에서 뗄 때 True
마우스랑 키보드 외에도 Unity에서 제공해주는 Button이 있다. 이를 어디서 확인하냐면~~
Unity 상단에 Edit에서 Project Setting에 들어가보면,
Input Manager이 있을 것이다. 클릭해보면 다양한 버튼이 이미 Setting이 되어 있는데 이를 활용할 수 있다.
if (Input.GetButtonDown("Jump"))
Debug.Log("점프!");
Input Manager에 들어가보면 여러 키가 나열되어 있는데 Horizontal, Vertical, Jump ...등 우리가 평소에 게임하면서 자주 사용하는 키들이다. 이들을 C#에서 사용하려면 GetButton함수에서 "버튼이름"을 파라미터로 입력해줌으로써 사용할 수 있다.
똑같이 Down은 눌렀을때 True
if (Input.GetButton("Jump"))
Debug.Log("점프를 모으는중...");
GetButton은 누르고 있을 때 True
if (Input.GetButtonUp("Jump"))
Debug.Log("슈퍼 점프!!");
Up은 손을 떼어냈을 때 True이다.