Unity는 프로젝트의 스크립트가 Input.GetJoystickNames를 참조하는 경우에만 프로젝트에 게임 컨트롤러 프레임워크를 포함합니다. 사용 가능한 경우 Unity iOS 런타임이 프레임워크를 동적으로 로드합니다.
사용 가능한 모든 컨트롤러 목록을 가져오려면 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());
}
}