Resumen de preguntas frecuentes sobre WebGL de Unity

Reimpreso en: https://www.it610.com/article/1295062035498868736.htm

1.webgl no muestra fuentes

Comencé a exportar y descubrí que no se mostraban algunos caracteres. Pensé que la resolución comprimía el texto del Texto y los caracteres no se mostraban. Más tarde, descubrí que era un problema de webgl. Verifiqué la información y dije que no usara el fuentes que vienen con la unidad.

2. webgl no puede ingresar chino

Un blogger bovino resuelve el complemento de entrada chino

Los blogueros de CSDN comparten complementos de entrada chinos

¡Usa ambos juntos!

3. Fuentes borrosas

Esto es relativamente común. De manera predeterminada, Unity usa Text para agrandar la fuente y se verá borrosa o incluso poco clara. La solución a este problema es usar el complemento TextMeshProUGUI, que se puede descargar en PackageManager.

Las ventajas de este complemento son:

1. Puedes hacer diferentes fuentes por ti mismo;

2. No importa cuántas veces se amplíe o el tamaño de fuente sea pequeño, se mostrará claramente;

4. El navegador del paquete de exportación webgl abre un informe de error que excede el tamaño de la memoria

Habrá tales errores más o menos en el proyecto convertido en webgl. Después de buscar la información oficial, usando la versión unity2018 puede ajustar el tamaño de la memoria utilizada por el paquete de exportación. El valor de cambiar el tamaño de la memoria se ha eliminado desde el versión unity2019, :(Luego encuentre la solución Única es cambiar el tamaño de la memoria del código. Descubrí que se ha comentado un fragmento de código en la plantilla Universal WebGL para cambiar el tamaño de la memoria, y luego intente aumentar el valor de la memoria.Se puede abrir normalmente en el navegador Firefox, pero en el navegador de Google El navegador informó directamente otro error, queriendo llorar sin lágrimas, la Parte A solicitó usar el navegador de Google y tuvo que encontrar otra forma.La solución final fue usar Paquete de activos para cargar el paquete, reducir el tamaño del paquete y reducir el uso de la memoria.

5. webgl usa Asset Bundle para cargar la excepción de visualización de material del modelo de recurso

Al principio, exporté el paquete webgl y el paquete ab, los cargué con el navegador y luego encontré una pieza de color rojo. Algunos de los materiales del modelo cargados con el paquete ab se mostraban en rosa. La primera reacción fue que los materiales eran perdido Pensé que era el paquete ab que descargó los recursos materiales., y luego de cambiar el código sin desinstalar, sigue siendo el mismo. . . Esa no es la razón. Revisé cierta información en Internet y descubrí que los sombreadores relevantes deben agregarse a Configuración del proyecto-> Gráficos-> Sombreadores siempre incluidos. Recuerde incluir el material estándar de Unity, de lo contrario encontrará que exporta el webgl paquete Será muy lento y el tamaño de su paquete será muy grande, porque contiene miles de sombreadores, así que intente usar Estándar lo menos posible aquí, y puede usarlo, pero el efecto cambiará y lo hará. se mostrará en el editor muy bien. Al igual que cambiar un sombreador, intente usar otros sombreadores que puedan reemplazarlo, o puede escribir un sombreador, o usar un sombreador escrito por el complemento ShaderGraph, y luego incluirlo aquí, así que la velocidad de exportación es rápida y el paquete es pequeño.

6. Algunas consideraciones para webgl usando Asset Bundle para cargar recursos

Use el complemento Asset Bundle Browser, que se puede descargar en PackageManager, y hay muchos tutoriales en Internet. Creo que este complemento es bastante fácil de usar. Puede mostrar si hay recursos duplicados en diferentes paquetes ab, permitiendo a los desarrolladores reducir el tamaño del paquete ab. Las siguientes son algunas precauciones para usar paquetes ab: intente usar varios paquetes ab, y el tamaño de cada paquete ab no debe exceder los 20M, use la gestión de clasificación de paquetes ab; intente no usar el método de bloqueo de rutinas para cargar paquetes ab; ProjectSettings -> Desmarque Player->Strip Engine Code; recuerde UnLoad (falso) después de cargar para reducir el uso de memoria; el sombreador utilizado por el paquete ab debe incluirse en ProjectSettings->Graphics->Siempre incluidos Shaders; use compresión LZ4.

7. webgl reproducir video

Esto es relativamente simple, y hay muchos complementos en Internet. El VideoPlayer que viene con unity puede reproducir videos y URL locales. Tenga en cuenta que no necesita marcar Reproducir en Awake al principio, y el video no se reproducirá en el navegador Uso AVProVideo, este complemento no es malo, es compatible con PC, Android, IOS, Webgl, Mac y otras plataformas, puede elegir usted mismo, hay muchos tutoriales en línea, también tenga en cuenta que el video no será jugado al principio.

8. webgl reproducir video transmitir video en tiempo real

Hay un requisito para reproducir secuencias de video rtsp en el proyecto, y luego revisé cierta información. Después de buscar durante mucho tiempo, vi un complemento UMP Pro Win Mac Linux WebGL. Después de usarlo, descubrí que webgl no Parece ser compatible. Solución de video en línea m3u8 (monitoreo, transmisión en vivo), este artículo es muy bueno, puede probarlo si quiere aprender.

9. problemas de serialización y deserialización webgl json

Use JsonUtility.FromJson() que viene con Unity para analizar datos json en el editor Incluso si se define como datos int y el valor es Nulo, esto también se puede analizar en webgl, pero algunas estructuras de datos no se pueden analizar normalmente. , como Dictionary, que se puede analizar normalmente en el editor, pero no se puede analizar normalmente en webgl. Más tarde, encontré otro Newtonsoft.Json para analizar. Esto puede analizar los datos del diccionario normalmente, pero debe definirlo correctamente. Unity viene con it El JsonUtility.FromJson() no necesita definir el atributo correctamente. Algunas personas pueden definir un determinado atributo para su interfaz como un tipo int, pero los datos proporcionados son nulos. Hay muchas personas así, entonces, ¿qué debo hacer? , el uso de Newtonsoft.Json para analizar informará un error, diciendo que la definición del atributo es incorrecta y también se bloqueará. . . Afortunadamente, hay una solución para encontrar información, que es usar int? para definir, y otros tipos float? y long? se pueden definir de esta manera, para que este problema se pueda resolver.

10. Webgl+nginx construye servicios simples

Algunos navegadores del webgl empaquetado no admiten la apertura directa. Google y Firefox no se pueden abrir directamente, por lo que se necesita construir un servidor simple para abrir la página web webgl. El siguiente artículo es una buena solución a este problema. unity webgl + nginx Server Puede reducir su tiempo de inicio si configura su servidor web para alojar

11.webgl resuelve el problema del modelo de diente de sierra

La solución al problema del aliasing del modelo es: Configuración del proyecto->Calidad->Anti Aliasing, seleccione Muestreo múltiple 8x, Calidad, recuerde seleccionar las opciones que configuró en la plataforma webgl. Por supuesto, algunos complementos tendrán optimización de suavizado, como los complementos de efectos especiales de posprocesamiento de posprocesamiento, si está interesado, puede probarlo.

12. modo webgl

Creo que los amigos que desarrollan proyectos webgl deben saber que escribir en el editor puede funcionar normalmente, pero al exportar webgl y ejecutarlo, se encontrarán varios errores. No puedo esperar a que Unity cree un editor para probar en la página web. , y coopere con una pieza de código en el modo VS.Debug, pero esto es imposible, así que intente usar debug para localizar el error, el editor también es torturado, porque algunas funciones solo se pueden implementar y probar en una máquina específica, lo que hace que mi código sea incorrecto y solo puedo escribir depuración. Es hora de posicionar, así que escriba más, ¡porque no es fácil exportar el paquete! Empaque durante 10 minutos a la vez. Si desea probar qué pieza de código tiene problemas, debe mirar la depuración. Recuerde verificar ProjectSettings-> Player-> Enable Exceptions to Explicitly Throwed Exceptions Only, de lo contrario no verá la depuración. en la consola del navegador Sí, recuerda apagarlo cuando se lance oficialmente.

13. optimización del rendimiento webgl

Cuando abre su proyecto lleno de alegría y descubre que su proyecto es como jugar PTT, entonces necesita optimizarlo. La optimización incluye:

1. Reduzca el número de caras y vértices del modelo (trate de no usar demasiadas caras de bolas y cilindros);

2. Utilice el procesamiento por lotes estático, verifique Configuración del proyecto->Reproductor->Otras configuraciones->Procesamiento por lotes estático, el objeto Estático correspondiente necesita verificar Procesamiento por lotes estático;

3. Para usar el procesamiento por lotes dinámico, marque Configuración del proyecto->Reproductor->Otras configuraciones->Procesamiento por lotes dinámico, y el objeto Estático correspondiente necesita verificar Procesamiento por lotes estático;

4. Si la textura está borrosa, desmarque Generar mapa mip y reduzca MaxSize tanto como sea posible;

5. Eliminar sombras y utilizar mapas de luz;

6. Si el material del modelo no necesita verse afectado por la luz, intente usar Móvil/Difuso o Sin iluminación/Textura;

7. Intente eliminar el cuerpo de colisión;

8. Elimine el animador inútil (se importarán algunos modelos);

9. Use Animator lo menos posible, use Dotween o Animation para animaciones simples, use Animator para tediosas y de múltiples estados;

10. Elimine la colisión de la cuadrícula, intente no usar la colisión de la cuadrícula;

11. Use horneado de luz, use Sonda de reflexión y Grupo de sonda de luz, después de completar la configuración de la propiedad, coloque el modelo que debe verse afectado por la luz en él y haga clic en hornear en el panel de iluminación (puede eliminar el objeto, el los datos ya existen en los datos de la escena);

12. Use la eliminación de oclusión, coloque el objeto en el área de oclusión, verifique estáticamente Occluder static y Occludee static, y hornee en el panel Oclusión (puede eliminar el objeto, los datos ya existen en los datos de la escena);

13. Use lo menos nuevo posible cuando comience a funcionar;

14. Use LOD (esto no se recomienda, solo utilícelo cuando haya suficiente memoria. Generalmente, la memoria de webgl es escasa y puede ser que la memoria se exceda)

Publicado el 2022-03-14 15:39

 

Supongo que te gusta

Origin blog.csdn.net/weixin_42565127/article/details/130870583
Recomendado
Clasificación