言語: 日本語
  • C#
  • JS
  • Boo

スクリプト言語

お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。

MaterialPropertyBlock.AddColor

public function AddColor(nameID: int, value: Color): void;

Description

color型のマテリアルプロパティを追加します

	// Draws 3 meshes with the same material but with different colors.

	var aMesh : Mesh;
	var aMaterial : Material = new Material(Shader.Find("VertexLit"));

	function Update() {
		var materialProperty : MaterialPropertyBlock = new MaterialPropertyBlock();

		// red mesh
		materialProperty.Clear();
		materialProperty.AddColor("_Color",Color.red);
		Graphics.DrawMesh(aMesh, Vector3(0,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// green mesh
		materialProperty.Clear();
		materialProperty.AddColor("_Color",Color.green);
		Graphics.DrawMesh(aMesh, Vector3(5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// blue mes
		materialProperty.Clear();
		materialProperty.AddColor("_Color",Color.blue);
		Graphics.DrawMesh(aMesh, Vector3(-5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);
	}

/nameID/ でこの関数を呼び出すほうが高速になります。もし、繰り返し同じ名前のプロパティを追加する場合は、 Shader.PropertyToIDを使用してプロパティ名のユニークIDを取得し、AddColorにIDを渡します。

	// Draws 3 meshes with the same material but with different colors.
	// Using the material tag ID.

	var aMesh : Mesh;
	var aMaterial : Material = new Material(Shader.Find("VertexLit"));

	function Update() {
		var materialProperty : MaterialPropertyBlock = new MaterialPropertyBlock();
		var tagID : int = Shader.PropertyToID("_Color");

		// red mesh
		materialProperty.Clear();
		materialProperty.AddVector(tagID,Color.red);
		Graphics.DrawMesh(aMesh, Vector3(0,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// green mesh
		materialProperty.Clear();
		materialProperty.AddVector(tagID,Color.green);
		Graphics.DrawMesh(aMesh, Vector3(5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// blue mesh
		materialProperty.Clear();
		materialProperty.AddVector(tagID, Color.blue);
		Graphics.DrawMesh(aMesh, Vector3(-5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);
	}