Unity는 프로젝트의 스크립트에서 Input.GetJoystickNames
를 참조하는 경우에만 프로젝트에 게임 컨트롤러 프레임워크를 포함시킵니다.사용 가능한 경우 Unity iOS Runtime은 프레임워크를 동적으로 로드합니다.
사용 가능한 모든 컨트롤러의 리스트를 가져오려면 Input.GetJoystickNames
를 호출합니다.언제든지 이 리스트를 다시 확인하여 컨트롤러가 부착 또는 분리되었는지 확인할 수 있습니다.
이 API를 호출하여 연결된 컨트롤러의 유형을 감지할 수 있습니다.이름은 다음 패턴을 따릅니다.[$profile_type,$connection_type] joystick $number by $model
.$profile_type
은(는) basic 또는 extended, 그리고 $connection_type
은(는) wired 또는 wireless일 수 있습니다.Unity가 컨트롤러를 하나 이상 감지하면 온스크린 터치 컨트롤을 비활성화하거나 컨트롤러 입력을 보완하도록 수정할 수 있습니다.
다음 코드 샘플은 기기에 컨트롤러가 연결되어 있는지 확인합니다.
using System.Collections;
using UnityEngine;
public class GameControllers :MonoBehaviour
{
private bool connected = false;
IEnumerator CheckForControllers() {
while (true) {
var controllers = Input.GetJoystickNames();
if (!connected && controllers.Length > 0) {
connected = true;
Debug.Log("Connected");
} else if (connected && controllers.Length == 0) {
connected = false;
Debug.Log("Disconnected");
}
yield return new WaitForSeconds(1f);
}
}
void Awake() {
StartCoroutine(CheckForControllers());
}
}