Legacy Documentation: Version 5.2
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

MaterialPropertyBlock.AddFloat

Switch to Manual
public void AddFloat(string name, float value);
public void AddFloat(int nameID, float value);

Parameters

Description

Add a float material property.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Mesh aMesh; public Material aMaterial = new Material(Shader.Find("VertexLit")); void Update() { MaterialPropertyBlock materialProperty = new MaterialPropertyBlock(); materialProperty.Clear(); materialProperty.AddFloat("_Shininess", 1.0F); Graphics.DrawMesh(aMesh, new Vector3(0, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty); materialProperty.Clear(); materialProperty.AddFloat("_Shininess", 0.5F); Graphics.DrawMesh(aMesh, new Vector3(5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty); materialProperty.Clear(); materialProperty.AddFloat("_Shininess", 0.0F); Graphics.DrawMesh(aMesh, new Vector3(-5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty); } }

Function variant that takes nameID is faster. If you are adding properties with the same name repeatedly, use Shader.PropertyToID to get unique identifier for the name, and pass the identifier to AddFloat.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Mesh aMesh; public Material aMaterial = new Material(Shader.Find("VertexLit")); void Update() { MaterialPropertyBlock materialProperty = new MaterialPropertyBlock(); int tagID = Shader.PropertyToID("_Shininess"); materialProperty.Clear(); materialProperty.AddFloat(tagID, 1.0F); Graphics.DrawMesh(aMesh, new Vector3(0, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty); materialProperty.Clear(); materialProperty.AddFloat(tagID, 0.5F); Graphics.DrawMesh(aMesh, new Vector3(5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty); materialProperty.Clear(); materialProperty.AddFloat(tagID, 0.0F); Graphics.DrawMesh(aMesh, new Vector3(-5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty); } }