名前からシェーダーを検索します
Shader.Find はシェーダーへの参照を維持することがなく別のシェーダーに切り替えるために使用できます。
name
は、各マテリアルのシェーダーポップアップに表示される名称です。例えば、 "Standard" 、 "Unlit/Texture" 、 "Legacy Shaders/Diffuse" などです。
何も参照されていないシェーダーは、プレーヤービルドに含まれません!この場合、 Shader.Find は、
その場合、Shader.Find はエディターでのみ動作します。プレーヤーのビルドでピンクの "missing shader" マテリアルの結果になります。そのため、名前でそれらを検索するかわりにシェーダーのリファレンスを使用することをお勧めします。
シェーダーを名前以外で検索して参照する場合に機能します。シェーダーがゲームビルドに含まれているかどうか確認する場合は、以下の何れかを実行します:
1) シーンで使用されるマテリアルの一部からそれを参照します。2) ProjectSettings/Graphics で "Always Included Shaders" リストの下にそれを追加するか 3) "Resources" フォルダーにシェーダーやそれ (マテリアルなど) を参照する何かを置きます。
関連項目: Material クラス
// 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; } }