Finds a shader with the given name
.
Shader.Find can be used to switch to another shader without having to keep a reference to the shader.
name
is the name you can see in the shader popup of any material, for example "Standard", "Unlit/Texture", "Legacy Shaders/Diffuse" etc.
Note that a shader might be not included into the player build if nothing references it! In that case, Shader.Find will work only
in the editor, and will result in pink "missing shader" materials in the player build. Because of that, it is advisable
to use shader references instead of finding them by name. To make sure a shader is included into the game build, do either of:
1) reference it from some of the materials used in your scene, 2) add it under "Always Included Shaders" list in ProjectSettings/Graphics or 3) put shader or something that references it (e.g. a Material) into a "Resources" folder.
See Also: Material class.
// Create a material from code function Start () { // Create a material with transparent diffuse shader var material = new Material(Shader.Find ("Transparent/Diffuse")); material.color = Color.green;
// assign the material to the renderer GetComponent.<Renderer>().material = material; }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void Start() { Material material = new Material(Shader.Find("Transparent/Diffuse")); material.color = Color.green; GetComponent<Renderer>().material = material; } }
Did you find this page useful? Please give it a rating: