UI GameObject se puede mostrar en Scene View, pero no en Game View

El UI GameObject se puede mostrar en la Vista de escena, pero no en la Vista de juego. Puede haber muchas razones, como configuración de capa, configuración de recorte de cámara, recursos de fuente, etc. Para TextMeshPro, también existe la cuestión del conjunto de materiales, consulte este artículo .

Lo que encontré esta vez fue porque no puse el UI GameObject en el UI Canvas. Como se muestra en la imagen a continuación, la interfaz de mi juego es una pequeña parte en la esquina inferior izquierda y el lienzo es grande, pero no cubre completamente la interfaz de mi juego. Cuando pongo el UI GameObject en la interfaz de mi juego pero no en el Canvas, la UI no se mostrará.
Insertar descripción de la imagen aquí
La solución es modificar el modo de renderizado de Canvas: desde la superposición de espacio de pantalla predeterminada (es decir, el lienzo que se muestra arriba, la posición y el tamaño no se pueden modificar) a World Space. No es necesario modificar otras partes (como la interfaz del juego y la lógica del código), está bien.

Insertar descripción de la imagen aquí

Acerca de la resolución de problemas en Unity

En Unity, cuando una función no funciona como se esperaba, es difícil encontrar el motivo porque hay muchos lugares que pueden provocar que no funcione correctamente. Para los principiantes, es aún más difícil porque no se sabe dónde puede estar la causa.

Además de mucha acumulación, una idea para solucionar problemas es el "experimento comparativo". Es decir, intente encontrar una situación de trabajo normal y luego compare su situación anormal con la situación normal para ver dónde son diferentes las configuraciones. Por ejemplo, al resolver el problema de que la UI no se podía mostrar normalmente, probé muchos cambios, como probar si la UI se podía mostrar normalmente en una nueva escena, deshabilitar algunos GameObjects, etc., y luego encontré la razón: Resultó que la interfaz de usuario no se mostraba correctamente. Ingrese a Canvas.

Tres modos de renderizado de lienzo

(El siguiente contenido es creado por un LLM).

Espacio de pantalla - Superposición : este es el modo de renderizado predeterminado para Canvas. En este modo, los elementos de la interfaz de usuario se representan encima de todo lo demás en la escena, similar a una superposición. El lienzo siempre tiene el mismo tamaño que la pantalla y no se mueve ni gira, por lo que los elementos de la interfaz de usuario mantienen el mismo tamaño y posición independientemente de la posición o la configuración de la cámara. Este modo se utiliza mejor para elementos de la interfaz de usuario que deben estar siempre visibles y en el mismo lugar, como barras de salud, pantallas de puntuación o menús.

Espacio de pantalla - Cámara : en este modo, el lienzo se comporta de manera similar a Espacio de pantalla - Superposición, pero los elementos de la interfaz de usuario se representan a una cierta distancia de una cámara específica. Parecerán moverse, rotar y escalar con la cámara, y otros objetos en la escena pueden oscurecerlos según su posición Z. Este modo es útil si quieres tener elementos de la interfaz de usuario conectados a una cámara específica, como una pantalla frontal (HUD) que se mueve con la perspectiva en primera persona del jugador.

Espacio mundial : en este modo, el lienzo se comporta como cualquier otro objeto de la escena. Se puede mover, rotar y escalar libremente, y los elementos de la interfaz de usuario pueden interactuar con las luces y verse afectados por la perspectiva. Este modo es útil cuando quieres integrar elementos de la interfaz de usuario en el mundo del juego, como burbujas de texto sobre la cabeza de un personaje o botones interactivos dentro del entorno.

El modo apropiado a utilizar depende de las necesidades de tu juego. Si tienes elementos de la interfaz de usuario que deben estar siempre visibles y no interactuar con el mundo del juego, usa Screen Space - Overlay. Si tiene elementos de la interfaz de usuario adjuntos a una vista de cámara específica, use Espacio de pantalla - Cámara. Y si tienes elementos de interfaz de usuario integrados en el mundo del juego, utiliza World Space.

Sistema de coordenadas de Unity, Tilemaps y Canvas

(El siguiente contenido es creado por un LLM).

Sistema de coordenadas de Unity: Unity utiliza un sistema de coordenadas para zurdos. El centro del mundo está en (0, 0, 0). En un juego 2D, los valores positivos de X van hacia la derecha, los valores positivos de Y suben y los valores positivos de Z salen de la pantalla.

Tilemaps: el sistema Tilemap de Unity crea entornos 2D basados ​​en mosaicos. La posición del Tilemap se refiere a la celda en el origen (0, 0) de su cuadrícula.

Canvas y TextMeshPro: en Unity, todos los elementos de la interfaz de usuario deben ser hijos de un Canvas. Si vas a colocar un elemento TextMeshPro en un mundo de juego 2D (y no como una superposición en la pantalla), querrás usar un lienzo en modo "Espacio mundial". Esto hace que Canvas actúe como cualquier otro objeto en el mundo, por lo que puedes colocarlo en cualquier lugar y sus elementos secundarios seguirán su posición, rotación y escala.

Guess you like

Origin blog.csdn.net/qq_35153254/article/details/130672266