Unity WebGL에있을 것 같아서 할 수없는

도쿄 본사의 G입니다.

UnityWebGL에 대응하고 적당히 시간이 지났 습니다만, WebGL에 관한 일본어의 정보가 상대적으로 적은 것 같은 생각이 요즘입니다.

오늘은 내가 한 범위에 있지만,Unity WebGL에서 "할 수없는 것 '을 모아 가고 싶다고 생각합니다.

버전Unity 5.3.2f1이되고 있습니다.

unity

기본 정보

WebGL 에서 개발을 시작하면서

http://docs.unity3d.com/ja/current/Manual/webgl-gettingstarted.html

기타 기본적으로 알아야 할 정보는Unity설명서

플랫폼 별 정보 → WebGL → WebGL에서 개발을 시작하면서

자식 노드를 확장하여 확인할 수 있습니다.

또한 브라우저를 실행 플랫폼으로하는 형편 상

플랫폼 별 정보 → WebPlayer

http://docs.unity3d.com/ja/current/Manual/Web.html

과 공통되는 항목도 있으므로,이 아이 노드 다음에 읽어 편이 좋을까 생각합니다.

Unity WebGL에서 할 수있는

Unity에서 제공하는 응용 출력 할 수있는 많은 기본적인 항목을 사용할 수 있습니다.

그래픽 그리기 (3D / 2D)

· 입력의 수신 (키보드/마우스)

사운드의 재생, 정지 등의 기본 조작

·HTTP / HTTPS통신 (WWW클래스 만)

자산 번들

등.

Unity WebGL에서 할 수없는 일

전술 한 바와 같이, 많은 수있는UnityWebGL하지만 플랫폼이 브라우저이라는 형편 상 아무래도 피할 수없는 문제가 몇 가지 있습니다.

또한 플러그인을 만들고HTML5사양에 따라 동작을 구현하면 회피 할 수있는 것도 있지만,JavaScript하면HTML5에 익숙해야합니다.

● 통신HTTP / HTTPS이외 사용하지 못한

일단,FTP통신도 할 수 있습니다 만, 이쪽은 수신 만 가능합니다.

또한UnityEngine.WWW클래스 이외의 네트워크 기능은 기본적으로 사용할 수 없습니다.

● 통신 데이터를 스트림 형식으로 사용할 수없는

통신은HTTP응답이 완전히 돌아 탈 때까지 데이터를 사용할 수 없습니다.

즉 다운로드를하면서 이미 다운로드가 끝나는 부분은 사용하는 등 수는 없습니다.

● 동일 호스트의 데이터에만 액세스 할 수 없다

기본적으로WWW클래스에서 읽을 수있는 데이터는 동일한 호스트에서 데이터이어야합니다.

이것은WebGL설명서의WWW클래스의 구현XMLHttpRequest 에 의한 것으로,XMLHttpRequest이 보안 문제로 동일 출처 정책을 준수 할 것에 기인하는 것입니다.

이에 관해서는Unity측면에서의 대응으로 해결하지 못하고 동일한 호스트에 데이터를 배치하거나,Cross-Origin Resource Sharing (CORS)을 서버 측에 올바르게 설정하여 해결 할 수 있습니다.

● 스레드를 이용한 처리를 할 수 없다

스레드를 사용할 수 없습니다.

그러나 기본적으로UnityEngine클래스에는 메인 스레드 이외의 동작은 할 수 없도록되어 있습니다.

아무래도 비슷한 처리를 할 필요가있는 경우 코루찐을 이용하는 등으로 해결할 수 있어야합니다.

● 파일 시스템이 존재하지 않기 때문에 파일이나 디렉토리를 사용할 수 없다

브라우저에서 파일에 액세스 할 수있는 수단이 없기 때문입니다.

이들은 향후HTML5관계의 기술 사양이 추가 됨으로써 해소 될 가능성이 있습니다.

현상으로 대처하는 경우Indexed DB같은 가상 파일 시스템을 만드는 등하면 가상으로 파일 시스템을 구축 할 수 있습니다.

● 키보드에서 일본어 입력을 할 수없는

uGUI입력 필드에 키보드에서 일본어 입력이 불가능합니다.

이것은 원래IME브라우저를 제어하고 있기 때문에, 애플리케이션 측에서IME를 제어하는 ​​수단이 없기 때문입니다.

HTMLTextField등으로 대체하는 등으로 대처해야합니다.

마지막으로 ~

위 불가능한 것에 대해서는 어디 까지나 "조사 단계에서"불가능한 것입니다.

앞으로 브라우저 나HTML5확장도Unity측면의 처리에 의해이 가능하게 될지도 모릅니다.

앱에서 브라우저에서 아무것도 생각하지 않고 동일한 소스에서 빌드 할 수있는 날은 아직 먼 것입니다.