본문 바로가기
Unity

[TIL - 21.12.08] 입력 클래스(Input Class)와 도형 이동

by 문찬웅 2021. 12. 9.

들어가며

유니티 기초를 가다듬기 위하여 골드메탈님의 유튜브 영상을 참고하여 공부를 진행하고 있습니다.
유튜브 링크 : 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