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

スクリプト言語

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

MaterialPropertyBlock.AddVector

public function AddVector(nameID: int, value: Vector4): void;

Description

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

	// 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.AddVector("_Color",Vector4(1,0,0,0.5));
		Graphics.DrawMesh(aMesh, Vector3(0,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// green mesh
		materialProperty.Clear();
		materialProperty.AddVector("_Color",Vector4(0,1,0,0.5));
		Graphics.DrawMesh(aMesh, Vector3(5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// blue mesh
		materialProperty.Clear();
		materialProperty.AddVector("_Color", Vector4(0,0,1,0.5));
		Graphics.DrawMesh(aMesh, Vector3(-5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);
	}

/nameID/ でこの関数を呼び出すほうが高速になります。もし、繰り返し同じ名前のプロパティを追加する場合は、 Shader.PropertyToID関数から/nameID/を取得して利用した方が高速に動作します。

	// 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,Vector4(1,0,0,0.5));
		Graphics.DrawMesh(aMesh, Vector3(0,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

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

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