티스토리 뷰

728x90

안녕하세요, 마늘입니다.

들어가기 전에 먼저 몇가지 말씀드리자면 

 

1. UnityBasis 연재는 제가 게으르기도 하고, 원래 제가 다 까먹었을 때 다시 보기 위해서 작성하는 글이기에

앞으로는 이전에 설명하던 것보다 덜 자세하게 다룰 예정입니다.

그래도 혹시나 꾸준히 챙겨보시는 분들을 위해서, 기본만 탄탄하게 담아서 작성해보도록 하겠습니다.

 

2. 유니티 버전을 2019.3.xx 버전에서 2021.xx 버전으로 올렸고, VS에서 VSC로 에디터를 바꿨습니다.

이전과 UI가 조금 다를 수 있으니 양해 바랍니다.

 

그럼 오늘의 주제, 키보드를 통해서 오브젝트 조종하기를 시작해보도록 하겠습니다.

 

1. InputManager와 GetAxis(), GetAxisRaw()

 

일단 InputManager가 무엇인지부터 알아봅시다.

Edit -> Project Settings에 들어가보면 

 

 

InputManager의 모습

이런 식으로 InputManager가 있는 걸 볼 수 있는데요.

InputManager가 하는 일이 대략 무엇이냐 하면, 미리 사용할 키를 지정하는 키바인드라고 생각하시면 됩니다.

여기에는 우리가 사용하는 키보드 키, 컨트롤러의 키도 포함됩니다.

> Axes를 눌러봅시다.

 

이런 식으로 기본 키 지정이 잘 되어있습니다.

수평을 의미하는 Horizontal에는 왼쪽 / 오른쪽 화살표 키가 기본으로 지정되어있고, 보조로 a / d가 저장되어있습니다.

WASD 컨트롤과, 화살표 컨트롤 모두 염두해 둔 것이겠지요.

창을 닫고, getAxis라는 이름으로 C# 코드를 하나 생성해봅시다.

 

여기서 GetAxis와 GetAxisRaw의 차이점이 나타나는데요.

GetAxis는 -1~1 사이의 값을 나타내지만, GetAxisRaw는 -1 / 0 / 1 세 가지 종류로만 반환합니다.

1은 InputManager에서 Positive 에 쓰여있는 키, -1은 Negative에 쓰여있는 키를 표시합니다.

부드러운 움직임을 표현하려면 GetAxis를, 아니면 GetAxisRaw를 사용하는게 낫겠죠.

실행 모습입니다.

 

2. GetButton() 과 그 시리즈, GetKey와 그 시리즈

GetButton() / GetButtonDown() / GetButtonUp()은 각각 버튼을 누르는 동안 / 눌렀을 때 한번 / 내렸을 때 한번 

True를 반환하는 함수입니다. InputManager에 들어있는 버튼에 기반해서 작동하게 되어있습니다.

위를 보면 Sumbit, Fire1, Jump 등등 다양한 키가 기본적으로 지정되어 있는 것이 보이실겁니다.

이를 한번 사용해보죠.

 

 

Jump 키에 기본 할당된 키는 Space이기 때문에, 스페이스를 누르면 Y좌표가 올라가겠죠?

 

GetKey() / GetKeyDown() / GetKeyUp()은 GetButton() 시리즈와 같지만, InputManager 대신

KeyCode.이름 방식으로 키를 불러온다는 점에서 차이가 있습니다

GetButton()에서는 Jump 키에 할당된 스페이스를 불러오지만, GetKey()는 KeyCode.Space로 불러오게 됩니다.

 

 

바로 위의 코드와 하는 동작은 완전히 같다는 점, 기억해주셨으면 좋겠습니다.

이외에도 GetMouseButton() 시리즈가 있는데, 

0은 좌클릭, 1은 우클릭, 2는 휠 중앙이란 점만 알아보고 끝내겠습니다

 

이상 마늘의 UnityBasis였습니다.\

다음 시간부터는 직접 2D 플랫포머를 만들어보면서 진행해보도록 하겠습니다 :)

 

 

 

728x90
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함