유니티:데이터 입력받기

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2021년 8월 10일 (화) 02:40 판 (→‎개요)
둘러보기로 이동 검색으로 이동

틀:유니티

  1. 유니티:개요
  2. 유니티:기본 조작
    1. 유니티:에셋스토어
  3. 유니티:카메라
  4. 유니티:오브젝트
    1. 유니티:데이터 입력받기
    2. 유니티:오브젝트 이동(오브젝트 조작)
    3. 유니티:힘으로 오브젝트 이동
    4. 유니티:충돌 이벤트
    5. 유니티:오브젝트 작성 tip
    6. 유니티:프리팹
  5. 유니티:코딩기초
    1. 유니티:C sharp 코딩 편의기능
    2. 유니티:MonoBehaviour
    3. 유니티:이벤트 메서드
    4. 유니티:컴포넌트 조작하기
  6. 유니티:UI
  7. 유니티:게임 내 화면
  8. 유니티:플레이어
    1. 유니티:모델
    2. 유니티:캐릭터 이동
    3. 유니티:애니메이션
    4. 유니티:주인공 시점
  9. 유니티:맵
    1. 유니티:투명한 벽 만들기
    2. 유니티:내비게이션
  10. 유니티:씬
  11. 유니티:몬스터
  12. 유니티:아이템
  13. 유니티:음향
    1. 유니티:배경음
    2. 유니티:효과음
  14. 유니티:빌드
  15. 유니티:VR
    1. 유니티:VR:UI
    2. 유니티:VR:VR로 변환
  16. 유니티:팁

개요

캐릭터를 움직이려면 키 입력을 받아야 한다.

컴퓨터, 단말기에 데이터를 넘겨 오브젝트를 조작한다.

방법

Update() 안에서 Input 클래스를 사용한다.(유니티 제공 클래스)

다음과 같이 사용한다.

void Update() {
    if (input.GetKey(KeyCode.UpArrow) == True) {  // 윗쪽 화살표가 눌리면..
        Rigidbody.AddForce(0f, 0f, speed);  // speed만큼의 힘을 z축에 더한다.
        }

키 입력

키 조작

키 입력은 누를 때, 누르고 있을 때, 뗐을 때 3가지 행동으로 조작할 수 있다.

설명
Input.anyKeyDown 아무 키나 받으면 true
Input.anyKey 아무 키를 누르고 있을 때에만 true
Input.GetKeyDown(KeyCode) 키를 누르는 순간에만 true

KeyCode는 클래스. 해당 클래스 안에 키 지도를 찾아 넣는다.

KeyCode.f1, KeyCode.A 등으로 키코드가 있다. 키코드는 유니티 문서를 참고하자.

Input.GetKey(키코드) 키를 누르고 있을 때 발생
Input.GetKeyUp(키코드) 키를 눌렀다 떼는 순간에 true

입력 매니저

Edit>Project Settings...에서 프로젝트 설정 창을 띄우고 Input>Axes에서 설정된 입력축들을 볼 수 있다. 별다른 처리를 하지 않아도 패드, 조이스틱 등에 대응되어 편리하다.

Input.GetAxis("키") 키코드를 이용하면 무조건 해당 키를 눌러야 하기 때문에 조작키를 사용자가 변형하기 어렵다는 단점이 있다. 때문에 '입력이름'으로 지정하는 편이 유리하다.

"Horizontal", "Vertical" 등의 "키"가 들어간다. 양의 방향이면 1, 음의 방향이면 -1을 반환하며, 이 키는 입력매니저에서 설정한다.(아날로그 스틱에선 살짝 미는 값도 반영하여 0~1 사이의 값을 갖는다.)

마우스 입력

누를 때, 누르고 있을 때, 뗐을 때 3가지 행동으로 조작할 수 있다.

설명
Input.GetMouseButtonDown(마우스코드) 누를때 발생
Input.GetMouseButton(마우스코드) 누르고 있을 때 발생
Input.GetMouseButtonUp(마우스코드) 뗄 때 발생
마우스코드
코드 설명
0 왼쪽버튼
1 우측버튼

버튼

위는 조작 자체에 대한 것. 일반적으로 버튼을 사용한다.

빠르고 여러 개의 조작키를 입력할 때 버튼이 적절한 듯하다.

Edit>Project Settings>Input Manager에서 버튼세팅 가능. 기본적인 키입력이 들어있다. 코드가 아니더라도 간단하게 조작 가능.

Input.GetButton ("버튼명") 형식으로 사용한다. 마찬가지로 Down, Up 가능.

같은 이름으로 여러 디바이스의 입력을 설정할 수 있다. 키보드, 마우스, 컴퓨터 뿐 아니라 모바일에서도 버튼으로 대체하게끔.

새 버튼 만들기

Input Manager 위쪽의 Size를 늘려주면 그에 맞춰 버튼이 더 생긴다. 버튼의 이름, 다양한 속성을 변형할 수 있다.