Unity WebGL은 HTML5 게임패드 API를 지원하는 브라우저에서 게임패드 및 조이스틱에 대한 Input 및 InputSystem을 지원합니다.
일부 브라우저에서는 최종 사용자가 애플리케이션에 포커스가 맞춰진 상태에서 기기와 상호작용한 후에만 입력 기기에 액세스할 수 있습니다.이 유형의 보안 조치를 통해 브라우저 핑거프린팅 목적으로 최종 사용자가 연결된 기기를 사용하는 것을 방지합니다.따라서 애플리케이션은 연결된 기기를 확인하기 위해 Input.GetJoystickNames()를 호출하기 전에 사용자에게 게임패드/조이스틱의 버튼을 누르도록 지시해야 합니다.
이전 입력 시스템에 대한 WebGL 게임 컨트롤러 매핑은 W3 사양을 갖추며, 버튼 매핑 레이아웃은 다음과 같습니다.
버튼 | 설명 |
---|---|
buttons[0] | 오른쪽 클러스터의 하단 버튼 = 엑스표(X) |
buttons[1] | 오른쪽 클러스터의 오른쪽 버튼 = 원형 |
buttons[2] | 오른쪽 클러스터의 왼쪽 버튼 = 사각형 |
buttons[3] | 오른쪽 클러스터의 상단 버튼 = 삼각형 |
참고:WebGL은 W3 사양을 따르기 때문에 다른 플랫폼과 일관되지 않을 수 있으며, Windows 및 웹과 같은 여러 플랫폼을 동시에 타게팅하는 경우 고유한 처리 방식이 필요합니다.
Unity WebGL은 아직 공식적으로 모바일 디바이스를 지원하지 않지만(WebGL 브라우저 호환성 참조) 터치 지원이 포함된 브라우저 및 기기에서 Input.touches 및 기타 관련 API를 구현합니다.기본적으로 모바일 디바이스에는 UI 입력 필드에 텍스트를 입력할 수 있도록 터치 스크린에 소프트 키보드가 표시됩니다.이 동작을 비활성화하려면 WebGLInput.mobileKeyboardSupport
프로퍼티를 사용하십시오.
기본적으로 Unity WebGL은 WebGL 캔버스에 포커스가 맞춰져 있는지에 관계없이 웹 페이지에서 수신하는 모든 키보드 입력을 처리합니다.따라서 최종 사용자는 WebGL 캔버스를 클릭하지 않고도 키보드 기반 애플리케이션을 사용할 수 있습니다.
아래에 설명된 대로 특정 키보드 입력에 적용되는 참고 사항은 다음과 같습니다.
키보드 입력 동작 | 설명 |
---|---|
HTML 요소(예: 텍스트 필드) | 일반적으로 HTML 요소(예: 텍스트 필드)를 키보드 입력을 수신하는 웹 페이지에 포함하면 오류가 발생할 수 있습니다.Unity는 페이지의 나머지 부분이 입력 이벤트를 수신하기 전에 입력 이벤트를 먼저 소비합니다. HTML 요소가 키보드 입력을 수신하도록 하려면 WebGLInput.captureAllKeyboardInput 을 false 로 설정하십시오.이렇게 하면 WebGL 캔버스에 포커스가 맞춰진 경우에만 애플리케이션이 입력을 수신합니다. |
Esc 키 | 웹 환경에서는 Esc 키가 보호되어 있기 때문에 Safari와 같은 일부 브라우저에서는 전체화면 모드로 전환할 때 Esc 키를 사용할 수 없으며 Google Chrome과 같은 브라우저에서는 예상치 못한 동작이 발생합니다.브라우저가 전체화면 모드일 경우 Esc 키는 전체화면 모드를 종료하는 동작에 대해 예약됩니다.브라우저 타입에 따라 Esc 키를 클릭해도 항상 브라우저에서 애플리케이션으로 이벤트가 전달되지 않을 수 있습니다. |
HideMobileInput |
TextMeshPro(TMP라고도 함) 입력 필드의 HideMobileInput 옵션은 웹 플랫폼에 영향을 주지 않습니다.이는 브라우저에서 가상 키보드를 트리거하려면 텍스트 입력 필드가 필요하기 때문입니다.웹 플랫폼은 Unity 플레이어에 텍스트 입력이 필요할 때 텍스트 입력 필드를 인스턴스화하여 가상 키보드를 트리거하며, 다른 플랫폼과 마찬가지로 가상 키보드 위에 표시합니다.가상 키보드는 모바일 텍스트 입력 필드에 의존하기 때문에 웹 플랫폼에서 숨겨져 표시될 수 없습니다. |
Unity WebGL은 공식적으로 모바일 디바이스를 지원하지 않지만(WebGL 브라우저 호환성 참조), 터치 지원이 포함된 브라우저 및 모바일 디바이스에서 Unity WebGL은 다음 센서에 대한 지원을 제공합니다.
중요:브라우저는 보안 컨텍스트에서만 센서 입력을 허용합니다.즉 HTTPS를 통해 페이지를 제공해야 합니다.유일한 예외는 개발 중에 사용할 수 있는 http://localhost
입니다.