아직 덜 정리했는데 일단 끼적인 거 백업해두기... 개인 공부용 노션에 썼던거 그대로 복붙해서 올린거라 글 엉망임.
언제든 내용 추가 될 가능성 有.
1. Input.GetAxisRaw + Input.GetAxis
[Input] : Input 시스템에 대한 Unity 의 인터페이스. Input.GetAxis() (or Input.GetAxisRaw)를 통해 해당하는 축을 사용할 수 있음. GetAxis와 GetAxisRaw는 차이가 있음.
- Input.GetAxis(string axisName) : 반환 값으로 -1에서 1 사이의 값을 반환함. 0.05f 단위로 순차적으로 값을 Smoothing 해서 반환하는 듯. (값이 서서히 변화한다는 뜻)
- Input.GetAxisRaw(string axisName) : 반환 값으로 0, -1, 1 값을 반환함. Input.GetAxis()와 달리 중간 단계 없음. 바로 저 정수값 중 하나를 반환함.
사용자가 따로 설정하지 않아도 Unity 자체적으로 키 값에 대한 디폴트 값을 가지고 있는데, 대충 자주 쓰게 되는 것들은 아래와 같음.
Horizontal (수평) | 수평 축에 대한 입력값을 받음. 기본적으로 설정되어 있는 키는 '→, ←(좌우 방향키)'. 대체 버튼(Alt Pos/Neg Button)으로는 'A'와 'D'가 설정되어 있음. 기본적으로 오른쪽 방향에 해당하는 키를 눌렀을 시 양의 정수(1) 값을, 왼쪽 방향에 해당하는 키를 눌렀을 시 음의 정수(-1) 값을 반환함. |
Vertical (수직) |
수직 축에 대한 입력값을 받음. 기본적으로 설정되어 있는 키는 '↑, ↓(상하 방향키)'. 대체 버튼으로는 'W', 'S'가 설정되어 있음. 기본적으로 위 방향에 해당하는 키를 눌렀을 시 양의 정수(1) 값을, 아래 방향에 해당하는 키를 눌렀을 시 음의 정수(-1) 값을 반환함. |
말그대로 디폴트 값일 뿐이라 저 축들은 사용자가 얼마든지 변경가능. 키 또한 개발자 마음대로 커스텀할 수 있음. 쟤네 말고도 Fire, Jump 등 다양한 디폴트 값이 있고, 이름도 키 값도 얼마든지 바꿀 수 있기 때문에 자기 게임에 따라 적절히 바꿔서 쓰면 될듯.
//Example
float horizontalMove, verticalMove;
horizontalMove = Input.GetAxis("Horizontal");
verticalMove = Input.GetAxisRaw("Vertical");
이 축 값에 대해서도 GetKey 때와 같이 특정 키를 누르고 있는 상태, 눌렀다 뗀 상태를 함수를 통해서 알 수 있음. 간단하게 GetButtonDown, GetButtonUp 등으로 사용하면 됨.
2. Input.GetKey(string name)
이것 또한 키 입력을 받을 수 있는 함수. 위의 GetAxis나 GetButton과 비슷하게 키의 이름을 입력으로 받는다. 이 때 입력으로 받는 키들은 위와 마찬가지로 InputManager에 사전에 정의된 디폴트 값들 또한 쓰일 수 있음. 다만 Unity 공식 문서에서는 Input.GetKey 보다는 Input.GetButton 이나 Input.GetAxis를 권장하는데, 이는 최종 사용자(End-user)가 키를 설정하는 것이 가능해서라고 함.
이 외에도 Unity 공식 문서 이것저것 봤음...
'공부 > Unity' 카테고리의 다른 글
Raycast & LayerMask (쪼까 추가 (0) | 2021.04.18 |
---|---|
Tilemap (feat. World Building) (0) | 2021.04.09 |
Unity Animation (0) | 2021.03.22 |