유니티

[유니티 기초] 버튼 입력 방식으로 물체 이동하기 - GetButton, Transform

맛난과자 2024. 1. 23. 14:19

 

저번 강의에 글에 이어 이번에는 버튼 입력 방식을 알아보자

 

 

| 버튼 방식

 

Edit ▶Project Settings ▶InputManager

 

에 들어가면 유니티에서 기본적으로 설정되어 있는 버튼들을 볼 수 있다.

 

이런 버튼들을 사용할 수 있게끔 하는 함수가 GetButton 이다.

 

GetButton: Input 버튼 입력을 받으면 true 반환

if (Input.GetButton("Jump"))
    Debug.Log("점프 모으는 중...");
if (Input.GetButtonUp("Jump"))
    Debug.Log("슈퍼 점프!!!");
if (Input.GetButton("Fire1"))
    Debug.Log("불을 쏘았습니다.");

 

 

내가 원하는 입력을 InputManager에 지정하고 싶을 경우,

Axies 밑의 Size를 추가해서 새로운 키를 설정할 수 있다.

 

 

 

| 오브젝트 이동

 

Transform: 오브젝트 형태에 대한 기본 컴포넌트.

 

클래스로 만들 필요없이 유니티가 자동으로 만들어준다.

 

Translate: 벡터 값을 현재 위치에 더해주는 이동 함수.

 

Vector3: 3차원 벡터 값 가짐 (물리에서 배우는 그 벡터. 스칼라에 위치 방향을 가지는 값)

 

void Start() {
    int number = 4;
    Vector3 vec = new Vector3(5, 0, 0);
    transform.Translate(vec);
}

 

오브젝트가 x축으로 5만큼 이동하는 모습을 볼 수 있다.

 

void Update(){
    Vector3 vec = new Vector3(0, 0.1f, 0);
    transform.Translate(vec);
}

 

Update의 경우 주로 1초에 60프레임씩 계속해서 적용되기 때문에

 

오브젝트가 0.1씩 y축으로 계속 이동하는 모습을 볼 수 있다.

 

 

| 버튼 이동

 

이제 이들을 적용해서 버튼을 누르면 오브젝트가 이동하는 시스템을 구현해보자

Vector3 vec = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
transform.Translate(vec);

 

 

 

 

이 글은 골드메탈님의 유니티 기초 강좌를 정리 및 내용 추가한 것 입니다.