Aquí está la documentación correspondiente de Unity .
Según las explicaciones de las páginas de documentación de Unity sobre los GameObjects estáticos, a veces marcar GameObjects como estáticos puede afectar el rendimiento de manera negativa (por ejemplo, el procesamiento por lotes estático causa más uso de memoria) .
Entonces, ¿cuándo debería exactamente querer usar estas funcionalidades?
Gracias por adelantado.
Notas al pie:
Actualmente estoy desarrollando un juego 2D de arriba hacia abajo que tiene muchos Sprites y LineRenderers, pero no objetos 3D (ni siquiera un quad). Todos los GameObjects se instancian procesalmente desde prefabricados prefabricados. Los LineRenderers se actualizan a partir de los scripts de cada cuadro. Y casi todos los Sprites se mueven constantemente. La mayoría de los Sprites comparten el mismo material. Todos los LineRenderers también comparten el mismo material.
fuente
Respuestas:
No hay una regla estricta sobre cuándo debe o no hacer que GameObjects sea estático.
Por lo menos, solo hazlo con objetos que nunca se moverán en su vida. Pero debe saber qué hace para evaluar si debe o no.
Congela la malla en los datos de la escena, por lo que no tiene la sobrecarga del GameObject para el elemento. Esto significa un aumento del rendimiento a costa de alterar los datos de la escena en el momento de la compilación y un costo adicional de memoria para la aplicación final compilada.
Esto está bien en muchos casos, aunque puede causar problemas, por ejemplo con los bosques. Además, significa que en lugar de almacenar los verts para el árbol una vez y las copias del dibujo de la GPU, tiene que duplicar esos verts por todo el lugar. Eso lleva tiempo durante la compilación y espacio en la aplicación. Nuestra aplicación pasó de 3-4 GB a 300-400 MB cuando hicimos los árboles no estáticos. El tiempo de construcción pasó de 3-4 horas a 1 hora.
Habiendo dicho todo eso! Su juego es 2d, y probablemente se beneficiaría de configurar GameObjects en escenas como estático, siempre que no tenga toneladas de ellos.
fuente
Si digo en general, todo lo que nunca se moverá (ni siquiera un píxel) en toda la vida de la aplicación debería marcarse como estático. Por lo general, es útil para hornear luces, hornear rutas de navegación, etc.
Bueno, si está desarrollando sin objetos 3D, simplemente relájese y relájese. No necesita preocuparse por el renderizado en tiempo real, las sombras o cualquier otro problema. Incluso eliminar la única luz viene con una nueva escena;)
Bueno, cualquiera puede corregirme si me equivoco en cualquier lugar.
fuente