查找具有给定 name
的着色器。如果未找到着色器,则返回 null
。
Shader.Find 可用于切换到另一个着色器,而无需保留对该着色器的引用。 name
是您在任何材质的着色器弹出窗口中看到的名称,例如“Standard”、“Unlit/Texture”、“Legacy Shaders/Diffuse”等。
请注意,如果没有任何东西引用着色器,则着色器可能不会包含在播放器构建中。在这种情况下,Shader.Find 仅在编辑器中有效,并且在构建中会导致粉红色的 错误着色器。因此,建议使用着色器引用而不是按名称查找它们。为了确保着色器包含在游戏构建中,请执行以下任一操作:1) 从场景中使用的某些材质中引用它,2) 将其添加到 ProjectSettings/Graphics 中的“始终包含的着色器”列表中,或者 3) 将着色器或引用它的内容(例如材质)放入“资源”文件夹中。
其他资源:Material 类。
using UnityEngine;
public class Example : MonoBehaviour { // Create a material from code void Start() { // Create a material with transparent diffuse shader Material material = new Material(Shader.Find("Transparent/Diffuse")); material.color = Color.green;
// assign the material to the renderer GetComponent<Renderer>().material = material; } }