본문 바로가기

Unity/Unity3D

Unity - Input과 object 이동

1. Input

Input - 입력과 관련된 내장되어 있는 클래스

2. anyKey

anyKeyDown - 아무 입력을 최초로 받을때 true (눌렀을때)

anyKey - 아무 입력을 받으면 true (쭉누르고 있을때)

3. 지표

입력관련 지표 - 눌렀을때: Down

                     누르고 가만히 있을때: (stay)

                     누르고 있던 것을 떼었을때: Up

4. GetKey()

GetKey() - 키보드 버튼 입력을 받으면 true

            - 눌렀을때 GetKeyDown(Keycode.~~~)

            - 누르고 가만히 있을때 GetKey(Keycode.~~~)

            - 누르고 있던 것을 떼었을때 GetKeyUp(Keycode.~~~)

*매개변수로 키보드 키의 종류를 받음

 

 

 

5. GetMouseButton()

GetMouseButton() - 마우스 입력 버튼을 받으면 true 

                         - 눌렀을때 GetMouseButtonDown(0 or 1)

                         - 누르고 가만히 있을때 GetMouseButton(0 or 1)

                         - 누르고 있던 것을 떼었을때 GetMouseButtonUp(0 or 1)

*매개변수로 숫자를 받는데 0은 마우스왼쪽버튼, 1은 마우스오른쪽버튼

 

 

 

6. GetButton()

- 마우스와 키보드입력방식을 벗어나서 조금더 유동적이고 세밀한 버튼방식!

- 같은Axes의 이름으로 마우스와 키보드 둘다 입력방식으로써 사용이 가능하다!

 

- 유니티에서 공식적으로 지정해준 키로 작동하도록 하는 방식으로 유니티도구의 Input Manager에서 버튼설정!

 

- 상단의 Edit -> project settings -> Input Manager

 

GetButton() - Input 버튼 입력 버튼을 받으면 true 

                 - 눌렀을때 GetButtonDown("Axes")

                 - 누르고 가만히 있을때 GetButton("Axes")

                 - 누르고 있던 것을 떼었을때 GetButtonUp("Axes")

*매개변수(Axes)는 Input Manager의 유니티 자체에서 이미 설정되어 있는 입력규칙들

*내 마음대로 수정, 추가, 삭제 가능!!!

 

 

 

7. GetAxis() , GetAxisRaw()

GetButton방식의 HorizontalVertical은 값이 있는데 이 값의 입력은 

 

 

Input.GetAxis() - 수평, 수직 버튼을 입력받으면 float

                     - 가중치가 있는 값 Input.GetAxis("Axes")

                    - 가중치가 없는 값 Input.GetAxisRaw("Axes")

 

 

 

8. transform , Translate(), Vector3

transform - 오브젝트형태에 대한 기본 컴포넌트

             - 오브젝트는 변수 tranform을 기본으로 가지고있음.

 

transform.Translate() - 벡터 값을 현재위치에서 더하는 함수

                              -현재위치에서 Vector값만큼 이동 transform.Translate(Vector값)

*Vector값은 방향과 크기가 있는 값으로 2차원은 Vector2 3차원은 Vector3로 정의하고

 3차원에서는 Vector3 변수이름 = new Vector3(x축, y축, z축); 
방식으로 방향과 그 방향에 대한 크기를 정의내린다

 

실행시 1번만 실행되도록 void Start로 구현

 

 

 

- InputManager의 Horizontal 과 Vertical에 저장되어 있는상(w, ↑),하(s, ↓), 좌(a,←), 우(d, →)에 따라

 GetAxis(float값 반환) 즉 증감이 있는 크기로 각 키를 누르는(Input) 정도에 따라 오브젝트 이동

실행시 지속적으로 반복실행되도록 Update로 구현

 

'Unity > Unity3D' 카테고리의 다른 글

Unity - 델타타임  (0) 2020.10.23
Unity- 목표지점으로 이동  (0) 2020.10.23
Unity - life cycle(생명주기)  (0) 2020.10.19
Unity- C#  (0) 2020.10.15
Unity - Hello Unity  (0) 2020.10.14