유니티:데이터 입력받기: 두 판 사이의 차이
(새 문서: {{유니티}} == 개요 == 캐릭터를 움직이려면 키 입력을 받아야 한다. 컴퓨터, 단말기에 데이터를 넘겨 오브젝트를 조작한다. Update()를 사...) |
(→마우스 입력) |
||
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
{{유니티}} | {{유니티}} | ||
== 개요 == | ==개요== | ||
캐릭터를 움직이려면 키 입력을 받아야 한다. | 캐릭터를 움직이려면 키 입력을 받아야 한다. | ||
컴퓨터, 단말기에 데이터를 넘겨 오브젝트를 조작한다. | 컴퓨터, 단말기에 데이터를 넘겨 오브젝트를 조작한다. | ||
===방법=== | |||
Update() 안에서 Input 클래스를 사용한다.(유니티 제공 클래스) | |||
다음과 같이 사용한다.<syntaxhighlight lang="c#"> | |||
void Update() { | |||
if (input.GetKey(KeyCode.UpArrow) == True) { // 윗쪽 화살표가 눌리면.. | |||
Rigidbody.AddForce(0f, 0f, speed); // speed만큼의 힘을 z축에 더한다. | |||
} | |||
</syntaxhighlight> | |||
=키 입력= | |||
=== 키 | ===키 조작=== | ||
키 입력은 누를 때, 누르고 있을 때, 뗐을 때 3가지 행동으로 조작할 수 있다. | 키 입력은 누를 때, 누르고 있을 때, 뗐을 때 3가지 행동으로 조작할 수 있다.<br /> | ||
<br /> | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! | ||
24번째 줄: | 27번째 줄: | ||
|아무 키나 받으면 true | |아무 키나 받으면 true | ||
|- | |- | ||
|Input. | |Input.anyKey | ||
|키를 누르고 있을 때에만 true | |아무 키를 누르고 있을 때에만 true | ||
|- | |- | ||
|Input.GetKeyDown(KeyCode) | |Input.GetKeyDown(KeyCode) | ||
|키를 | |키를 누르는 순간에만 true | ||
KeyCode는 클래스. 해당 클래스 안에 키 지도를 찾아 넣는다. | KeyCode는 클래스. 해당 클래스 안에 키 지도를 찾아 넣는다. | ||
KeyCode.f1, KeyCode. | KeyCode.f1, KeyCode.A 등으로 키코드가 있다. 키코드는 [https://docs.unity3d.com/kr/530/ScriptReference/KeyCode.html 유니티 문서]를 참고하자. | ||
|- | |- | ||
|Input.GetKey(키코드) | |Input.GetKey(키코드) | ||
37번째 줄: | 40번째 줄: | ||
|- | |- | ||
|Input.GetKeyUp(키코드) | |Input.GetKeyUp(키코드) | ||
|키를 | |키를 눌렀다 떼는 순간에 true | ||
|- | |||
| | |||
| | |||
|} | |||
====입력 매니저==== | |||
Edit>Project Settings...에서 프로젝트 설정 창을 띄우고 Input>Axes에서 설정된 입력축들을 볼 수 있다. 별다른 처리를 하지 않아도 패드, 조이스틱 등에 대응되어 편리하다. | |||
{| class="wikitable" | |||
|Input.GetAxis("키") | |||
|키코드를 이용하면 무조건 해당 키를 눌러야 하기 때문에 조작키를 사용자가 변형하기 어렵다는 단점이 있다. 때문에 '입력이름'으로 지정하는 편이 유리하다. | |||
"Horizontal", "Vertical" 등의 "키"가 들어간다. 양의 방향이면 1, 음의 방향이면 -1을 반환하며, 이 키는 입력매니저에서 설정한다.(아날로그 스틱에선 살짝 미는 값도 반영하여 0~1 사이의 값을 갖는다.) | |||
|} | |} | ||
=마우스 입력= | |||
누를 때, 누르고 있을 때, 뗐을 때 3가지 행동으로 조작할 수 있다. | 누를 때, 누르고 있을 때, 뗐을 때 3가지 행동으로 조작할 수 있다.<br /> | ||
<br /> | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! | ||
!설명 | !설명 | ||
63번째 줄: | 75번째 줄: | ||
|- | |- | ||
|0 | |0 | ||
| | |좌측버튼 | ||
|- | |- | ||
|1 | |1 | ||
|우측버튼 | |우측버튼 | ||
|- | |- | ||
| | |2 | ||
| | |휠버튼 | ||
|} | |} | ||
== 버튼 == | ==버튼== | ||
위는 조작 자체에 대한 것. 일반적으로 버튼을 사용한다. | 위는 조작 자체에 대한 것. 일반적으로 버튼을 사용한다. | ||
빠르고 여러 개의 조작키를 입력할 때 버튼이 적절한 듯하다. | |||
<code>Edit>Project Settings>Input Manager</code>에서 버튼세팅 가능. 기본적인 키입력이 들어있다. 코드가 아니더라도 간단하게 조작 가능. | <code>Edit>Project Settings>Input Manager</code>에서 버튼세팅 가능. 기본적인 키입력이 들어있다. 코드가 아니더라도 간단하게 조작 가능. | ||
81번째 줄: | 95번째 줄: | ||
같은 이름으로 여러 디바이스의 입력을 설정할 수 있다. 키보드, 마우스, 컴퓨터 뿐 아니라 모바일에서도 버튼으로 대체하게끔. | 같은 이름으로 여러 디바이스의 입력을 설정할 수 있다. 키보드, 마우스, 컴퓨터 뿐 아니라 모바일에서도 버튼으로 대체하게끔. | ||
=== 새 버튼 만들기 === | ===새 버튼 만들기=== | ||
Input Manager 위쪽의 Size를 늘려주면 그에 맞춰 버튼이 더 생긴다. 버튼의 이름, 다양한 속성을 변형할 수 있다. | Input Manager 위쪽의 Size를 늘려주면 그에 맞춰 버튼이 더 생긴다. 버튼의 이름, 다양한 속성을 변형할 수 있다. |
2021년 8월 12일 (목) 21:48 기준 최신판
- 유니티:개요
- 유니티:기본 조작
- 유니티:카메라
- 유니티:오브젝트
- 유니티:코딩기초
- 유니티:UI
- 유니티:게임 내 화면
- 유니티:플레이어
- 유니티:맵
- 유니티:씬
- 유니티:몬스터
- 유니티:아이템
- 유니티:음향
- 유니티:빌드
- 유니티:VR
- 유니티:팁
개요[편집 | 원본 편집]
캐릭터를 움직이려면 키 입력을 받아야 한다.
컴퓨터, 단말기에 데이터를 넘겨 오브젝트를 조작한다.
방법[편집 | 원본 편집]
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 | 우측버튼 |
2 | 휠버튼 |
버튼[편집 | 원본 편집]
위는 조작 자체에 대한 것. 일반적으로 버튼을 사용한다.
빠르고 여러 개의 조작키를 입력할 때 버튼이 적절한 듯하다.
Edit>Project Settings>Input Manager
에서 버튼세팅 가능. 기본적인 키입력이 들어있다. 코드가 아니더라도 간단하게 조작 가능.
Input.GetButton ("버튼명") 형식으로 사용한다. 마찬가지로 Down, Up 가능.
같은 이름으로 여러 디바이스의 입력을 설정할 수 있다. 키보드, 마우스, 컴퓨터 뿐 아니라 모바일에서도 버튼으로 대체하게끔.
새 버튼 만들기[편집 | 원본 편집]
Input Manager 위쪽의 Size를 늘려주면 그에 맞춰 버튼이 더 생긴다. 버튼의 이름, 다양한 속성을 변형할 수 있다.