들어가며
유니티 기초를 가다듬기 위하여 골드메탈님의 유튜브 영상을 참고하여 공부를 진행하고 있습니다.
유튜브 링크 : https://youtu.be/wqRwsW03JR4
해당 포스팅 전에 기본적인 자료형, 조건문, 반복문 등에 대해 공부한 뒤 오늘은 입력 클래스(Input Class)와 오브젝트 이동에 대해 공부했습니다.
기본적인 입력 클래스의 종류를 간단히 정리했습니다.
입력 클래스의 종류
1. anyKey
모든 키(키보드, 마우스)에 대한 트리거
- anyKeyDown : 아무 키를 눌렀을 때
- anyKeyUp : 아무 키를 누르다가 뗐을 때
- anyKey : 아무 키를 누르고 있을 때
2. GetKey
특정 키에 대한 트리거
- GetKeyDown : 특정 키를 눌렀을 때
- GetKeyUp : 특정 키를 누르다가 뗐을 때
- GetKey : 특정 키를 누르고 있을 때
3. GetButton
특정 버튼(Input Manager 설정)에 대한 트리거
Input Manager에서 입력에 관한 키 설정 후 Name으로 호출하여 사용한다.
- GetButtonDown : 특정 버튼을 눌렀을 때
- GetButtonUp : 특정 버튼을 누르다가 뗐을 때
- GetButton : 특정 버튼을 누르고 있을 때
4. GetMouseButton
마우스 클릭에 대한 트리거
- GetMouseButtonDown : 마우스 버튼을 클릭했을 때
- GetMouseButtonUp : 마우스 버튼을 클릭하다가 뗐을 때
- GetMouseButton : 마우스 버튼을 클릭하고 있을 때
+ GetAxis
키보드와 조이스틱 입력값에 대해 -1에서 1까지의 값을 가지는 가상축의 값 반환
- GetAxis : float 형으로 반환
- GetAxisRaw : int 형으로 반환
응용 : 오브젝트 이동
해당 코드 테스트 이전에 C# 컴포넌트를 생성하여 이동하고자 하는 도형(오브젝트)에 위치시킵니다.
(Hierachy 오브젝트 클릭 > Inspector 활성화 > C# 컴포넌트를 드래그하여 Import)
상, 하, 좌, 우 (x, y 좌표) 이동
void Update() {
Vector3 vec = new Vector3(
Input.GetAxis("Horizontal")/10, // 너무 빠르므로 조정
Input.GetAxis("Vertical")/10, // 너무 빠르므로 조정
0);
// 벡터 값
transform.Translate(vec);
}
이동 관련 함수
Vector3 target = new Vector3(8, 1.5f, 0);
void Update() {
// 1. MoveTowands
transform.position = Vector3.MoveTowards(transform.position, target, 0.01f);
// MoveTowards 는 마지막 매개변수에 비례하여 속도 증가
// 2. SmoothDamp
Vector3 velo = Vector3.zero;
transform.position = Vector3.SmoothDamp(transform.position, target, ref velo, 0.1f);
// SmoothDamp 는 마지막 매개변수에 반비례하여 속도 증가
// 3. Lerp (선형 보간)
transform.position = Vector3.Lerp(transform.position, target, 0.02f);
// 값이 작을 수록 느려짐!
// 4. Slerp (구면 선형 보간, 포물선 이동)
transform.position = Vector3.Slerp(transform.position, target, 0.02f);
}
'Unity' 카테고리의 다른 글
Vuforia AR 앱 만들기 (0) | 2021.12.23 |
---|---|
[Unity] iOS 빌드 구성하기 (0) | 2021.12.16 |
RigidBody, Collider 예제 (0) | 2021.12.10 |