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

スクリプト言語

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

MaterialPropertyBlock.AddFloat

public function AddFloat(nameID: int, value: float): void;

Description

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

	// Draws 3 meshes with the same material but with different Shininess levels

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

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


		// Not shiny
		materialProperty.Clear();
		materialProperty.AddFloat("_Shininess", 1.0);
		Graphics.DrawMesh(aMesh, Vector3(0,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// More or less shiny
		materialProperty.Clear();
		materialProperty.AddFloat("_Shininess", 0.5);
		Graphics.DrawMesh(aMesh, Vector3(5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// Shiny
		materialProperty.Clear();
		materialProperty.AddFloat("_Shininess", 0.0);
		Graphics.DrawMesh(aMesh, Vector3(-5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);
	}

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

	// Draws 3 meshes with the same material but with different Shininess levels
	// 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("_Shininess");

		// Not shiny
		materialProperty.Clear();
		materialProperty.AddFloat(tagID, 1.0);
		Graphics.DrawMesh(aMesh, Vector3(0,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// More or less shiny
		materialProperty.Clear();
		materialProperty.AddFloat(tagID, 0.5);
		Graphics.DrawMesh(aMesh, Vector3(5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);

		// Shiny
		materialProperty.Clear();
		materialProperty.AddFloat(tagID, 0.0);
		Graphics.DrawMesh(aMesh, Vector3(-5,0,0), Quaternion.identity,
				  aMaterial, 0, null, 0, materialProperty);
	}