版本: Unity 6 (6000.0)
语言英语
  • C#

Shader.Find

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public static Shader Find(string name);

描述

查找具有给定 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; } }