Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre el material Unity MeshRenderer y el material compartido

La diferencia entre el material Unity MeshRenderer y el material compartido

Las dos propiedades son idénticas, pero por razones de eficiencia es mejor utilizar SharedMaterial. Este es un material completamente compartido, por lo que no importa cómo manipule las propiedades del material (como cambiar colores o sombreadores), solo hay una copia del material en la memoria. Sin embargo, si usa materiales, Unity creará automáticamente una nueva copia del material cada vez que cambie las propiedades del material. La memoria no se aplicará hasta que Application.LoadLevel() o Resources.UnloadUnusedAssets(); Por lo tanto, el material tiene el potencial de causar una pérdida de memoria, por lo que simplemente no lo usamos.

Pero si usas el material render.shared directamente en el código, encontrarás que en el modo de desarrollo del editor, después de ejecutar el juego por un período de tiempo, el archivo .material local cambiará sin importar donde se modifica. Si ambos están bajo administración de svn, todos se convertirán en signos de exclamación rojos, lo que indica que los archivos han sido modificados. Esto es demasiado peligroso. ¿Qué pasa si lo subo accidentalmente? Para solucionar este problema, existe una forma sencilla de conseguir el material cada vez, dependiendo de la plataforma.