查找具有给定 name
的着色器。
可使用 Shader.Find 切换到其他着色器,无需保持对着色器的引用。
name
是可以在任何材质的着色器弹出窗口中看到的名称,例如“Standard”、“Unlit/Texture”、“Legacy Shaders/Diffuse”等。
注意,如果着色器没有引用方,着色器可能未包含在播放器版本中!这种情况下,Shader.Find 仅在
编辑器中起作用,在播放器版本中将生成粉红色“缺失着色器”材质。因此,建议使用
着色器引用,而不是按名称查找它们。要确保着色器包含在游戏版本中,则执行以下操作之一:
1) 从场景中使用的某些材质引用着色器,2) 将其添加在 ProjectSettings/Graphics 中的“Always Included Shaders”列表下,或者 3) 将着色器或其引用方(例如某个材质)放置到“Resources”文件夹中。
另请参阅: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; } }