Saltar al contenido →

Unity WebGL




¿Qué es Unity WebGL?

La construcción WebGL permite a Unity publicar contenido como programas JavaScript que utilizan tecnologías HTML5 y el renderizado WebGL API para ejecutar contenido de Unity en un navegador web. Para crear y probar su contenido para WebGL, elije el objetivo de creación de WebGL en la ventana crear reproductor y haz clic en crear y ejecutar.

Resumen técnico de Unity WebGL





Unity WebGLPara funcionar en WebGL, todo el código debe ser JavaScript. Utilizamos la cadena de herramientas del compilador emscripten para compilar el código de ejecución Unity (escrito en C y C++) en JavaScript de asm.js. asm.js es un subconjunto muy optimizable de JavaScript que permite a los motores JavaScript compilar código AOT asm.js en código nativo muy eficiente.

Para convertir el código de juego.NET (sus scripts C# y UnityScript) en JavaScript, utilizamos una tecnología llamada IL2CPP
. IL2CPP toma el bytecode.NET y lo convierte a los archivos de fuente C++ correspondientes, que luego se compilan usando emscripten para convertir sus scripts a JavaScript.

Compatibilidad con plataformas





El contenido de Unity WebGL es soportado en las versiones actuales de la mayoría de los navegadores principales en el escritorio, sin embargo hay diferencias en el nivel de soporte ofrecido por los diferentes navegadores. Los dispositivos móviles no son compatibles con Unity WebGL.

No todas las características de Unity están disponibles en las construcciones de WebGL, sobre todo debido a las limitaciones de la plataforma. Específicamente:

  • No se admiten subprocesos debido a la falta de soporte de subprocesos en JavaScript. Esto se aplica tanto al uso interno de hilos de Unity para acelerar el rendimiento, como al uso de hilos en código de script y dlls gestionados. Esencialmente, cualquier cosa en el System.threading namespace no es compatible.
  • Las compilaciones de WebGL no se pueden depurar en Visual Studio. Ver: Depuración y solución de problemas WebGL construye.
  • Los navegadores no permiten el acceso directo a las tomas IP para la conexión en red por motivos de seguridad.
  • La API de gráficos WebGL es equivalente a OpenGL ES 2.0 y 3.0, que tiene algunas limitaciones.
  • Las compilaciones de WebGL utilizan un backend personalizado para Audio, basado en la Web Audio API. Esto sólo soporta la funcionalidad básica de audio.
  • WebGL es una plataforma AOT, por lo que no permite la generación dinámica de código usando System.Reflection.Emit. Esto es lo mismo en todas las demás plataformas IL2CPP, iOS y la mayoría de las consolas.

Publicado en Unity

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *