안녕하세요.
기계과 감성쟁이입니다.
Unity에서 키보드/마우스 사용에 대해
적어보겠습니다.
* 영상 앞부분을 참고했습니다.
1. 키보드 아무 키나 누를 때
키보드를 누르는 데엔 3가지 방식이 있다.
1) Down : 누르는 것 - Input.anyKeyDown()
2) Stay : 누른 채로 유지 - Input.anyKey()
3) Up : 떼는 것 - anyKey 에는 Up 이 없다 ㅠㅠ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
void Update()
{
if (Input.anyKeyDown)
Debug.Log("This is anyKeyDown.");
if (Input.anyKey)
Debug.Log("This is anyKey.");
}
}
한 버튼을 꾹 눌렀을 때 결과.
캡쳐 과정에서 anyKeyDown의 출력값이 2개 추가되어 총 3개가 되었지만,
결론적으로 anyKeyDown은 최초 1번만, anyKey는 입력 시마다 작동한다.
2. 키보드 특정 키를 누를 때
1) Down : 누르는 것 - Input.GetKeyDown()
2) Stay : 누른 채로 유지 - Input.GetKey()
3) Up : 떼는 것 - Input.GetKeyUp()
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.Return))
Debug.Log("메시지가 전송되었습니다.");
if (Input.GetKey(KeyCode.Space))
Debug.Log("하늘을 날고있습니다.");
if (Input.GetKeyUp(KeyCode.Q))
Debug.Log("Q스킬 사용을 멈춥니다.");
}
}
엔터와 스페이스, Q버튼을 살짝 씩 누른 결과인데
그 잠깐 동안에 GetKey() 함수는 여러번 반복된 것을 알 수 있다.
물론 Q는, 키가 떼질 때 출력된다.
각각의 버튼에 대한 KeyCode는 위 사이트에서 확인할 수 있다.
3. 마우스를 이용할 때
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButtonDown(0))
Debug.Log("단발사격");
if (Input.GetMouseButton(0))
Debug.Log("연사");
if (Input.GetMouseButtonUp(1))
Debug.Log("정조준");
}
}
왼쪽버튼 꾹, 오른쪽 버튼은 클릭 한 결과이다.
쓰다보니까 너무 길어져서,
나눠서 적겠습니다 하하
아이고 더버라