Add a color material property.
For performance reasons, the property block can contain only a limited number of property values.
Two 4x4 matrices, six vectors/colors or 12 floats can be stored in the block. Storage space for the values
is shared, so storing one matrix leaves twice less space to store vectors and floats. When block's
storage is filled up, additional Add calls will be ignored.
var aMesh :
Mesh;
var aMaterial :
Material =
new Material(
Shader.Find(
"VertexLit"));
function Update() {
var materialProperty : MaterialPropertyBlock =
new MaterialPropertyBlock();
materialProperty.Clear();
materialProperty.AddColor(
"_Color",
Color.red);
Graphics.DrawMesh(aMesh,
Vector3(0,0,0),
Quaternion.identity,
aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddColor(
"_Color",
Color.green);
Graphics.DrawMesh(aMesh,
Vector3(5,0,0),
Quaternion.identity,
aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddColor(
"_Color",
Color.blue);
Graphics.DrawMesh(aMesh,
Vector3(-5,0,0),
Quaternion.identity,
aMaterial, 0, null, 0, materialProperty);
}
using UnityEngine;
using System.Collections;
public class example :
MonoBehaviour {
public Mesh aMesh;
public Material aMaterial =
new Material(
Shader.Find(
"VertexLit"));
void Update() {
MaterialPropertyBlock materialProperty =
new MaterialPropertyBlock();
materialProperty.Clear();
materialProperty.AddColor(
"_Color",
Color.red);
Graphics.DrawMesh(aMesh,
new Vector3(0, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddColor(
"_Color",
Color.green);
Graphics.DrawMesh(aMesh,
new Vector3(5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddColor(
"_Color",
Color.blue);
Graphics.DrawMesh(aMesh,
new Vector3(-5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
}
}
import UnityEngine
import System.Collections
class example(
MonoBehaviour):
public aMesh as
Mesh public aMaterial as
Material =
Material(
Shader.Find('VertexLit'))
def
Update():
materialProperty as MaterialPropertyBlock = MaterialPropertyBlock()
materialProperty.Clear()
materialProperty.AddColor('_Color',
Color.red)
Graphics.DrawMesh(aMesh,
Vector3(0, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddColor('_Color',
Color.green)
Graphics.DrawMesh(aMesh,
Vector3(5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddColor('_Color',
Color.blue)
Graphics.DrawMesh(aMesh,
Vector3(-5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
var aMesh :
Mesh;
var aMaterial :
Material =
new Material(
Shader.Find(
"VertexLit"));
function Update() {
var materialProperty : MaterialPropertyBlock =
new MaterialPropertyBlock();
var tagID :
int =
Shader.PropertyToID(
"_Color");
materialProperty.Clear();
materialProperty.AddVector(tagID,
Color.red);
Graphics.DrawMesh(aMesh,
Vector3(0,0,0),
Quaternion.identity,
aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector(tagID,
Color.green);
Graphics.DrawMesh(aMesh,
Vector3(5,0,0),
Quaternion.identity,
aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector(tagID,
Color.blue);
Graphics.DrawMesh(aMesh,
Vector3(-5,0,0),
Quaternion.identity,
aMaterial, 0, null, 0, materialProperty);
}
using UnityEngine;
using System.Collections;
public class example :
MonoBehaviour {
public Mesh aMesh;
public Material aMaterial =
new Material(
Shader.Find(
"VertexLit"));
void Update() {
MaterialPropertyBlock materialProperty =
new MaterialPropertyBlock();
int tagID =
Shader.PropertyToID(
"_Color");
materialProperty.Clear();
materialProperty.AddVector(tagID,
Color.red);
Graphics.DrawMesh(aMesh,
new Vector3(0, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector(tagID,
Color.green);
Graphics.DrawMesh(aMesh,
new Vector3(5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector(tagID,
Color.blue);
Graphics.DrawMesh(aMesh,
new Vector3(-5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
}
}
import UnityEngine
import System.Collections
class example(
MonoBehaviour):
public aMesh as
Mesh public aMaterial as
Material =
Material(
Shader.Find('VertexLit'))
def
Update():
materialProperty as MaterialPropertyBlock = MaterialPropertyBlock()
tagID as
int =
Shader.PropertyToID('_Color')
materialProperty.Clear()
materialProperty.AddVector(tagID,
Color.red)
Graphics.DrawMesh(aMesh,
Vector3(0, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddVector(tagID,
Color.green)
Graphics.DrawMesh(aMesh,
Vector3(5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddVector(tagID,
Color.blue)
Graphics.DrawMesh(aMesh,
Vector3(-5, 0, 0),
Quaternion.identity, aMaterial, 0, null, 0, materialProperty)