シェーダの source 文字列から一時的なマテリアルを作成します
もしカスタムの特殊効果を実装するスクリプトがある場合、全てのグラフィックセットアップを 実装するためにシェーダおよびマテリアルを使用します。この関数を使用して自身のスクリプトの中にカスタムシェーダおよびマテリアルを作成します。 このマテリアルを作成後、 SetColor, SetTexture, SetFloat, SetVector, SetMatrix を使用してシェーダのプロパティの値を生成します。
// Creates an additive-blended material and uses it for rendering var color = Color.white; function Start () { var shaderText = "Shader \"Alpha Additive\" {" + "Properties { _Color (\"Main Color\", Color) = (1,1,1,0) }" + "SubShader {" + " Tags { \"Queue\" = \"Transparent\" }" + " Pass {" + " Blend One One ZWrite Off ColorMask RGB" + " Material { Diffuse [_Color] Ambient [_Color] }" + " Lighting On" + " SetTexture [_Dummy] { combine primary double, primary }" + " }" + "}" + "}"; renderer.material = new Material( shaderText ); renderer.material.color = color; }
注意: マテリアルをこの方法で作成するときシンプルなシェーダのみ対応しています(固定関数)。 もしサーフェイスシェーダ、または頂点/ピクセルシェーダが必要である場合、 エディタでシェーダ アセットを作成し、それを使用する必要があります。 See Also: ShaderLab documentation.
Shader から一時的なマテリアルを作成します
もしカスタムの特殊効果を実装するスクリプトがある場合、全てのグラフィックセットアップを 実装するためにシェーダおよびマテリアルを使用します。この関数を使用して自身のスクリプトの中にカスタムシェーダおよびマテリアルを作成します。 このマテリアルを作成後、 SetColor, SetTexture, SetFloat, SetVector, SetMatrix を使用してシェーダのプロパティの値を生成します。
// Creates a material from shader&texture references var shader : Shader; var texture : Texture; var color : Color; function Start () { renderer.material = new Material (shader); renderer.material.mainTexture = texture; renderer.material.color = color; }
// Creates a cube and assigns a material with a builtin Specular shader. function Start () { var cube = GameObject.CreatePrimitive (PrimitiveType.Cube); cube.renderer.material = new Material (Shader.Find("Specular")); }
シェーダおよび source
マテリアルからシェーダおよび全てのプロパティから複製して一時的なマテリアルを作成します