Add a vector material property.
// 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);
}
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.AddVector("_Color", new Vector4(1, 0, 0, 0.5F));
Graphics.DrawMesh(aMesh, new Vector3(0, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector("_Color", new Vector4(0, 1, 0, 0.5F));
Graphics.DrawMesh(aMesh, new Vector3(5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector("_Color", new Vector4(0, 0, 1, 0.5F));
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.AddVector('_Color', Vector4(1, 0, 0, 0.5F))
Graphics.DrawMesh(aMesh, Vector3(0, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddVector('_Color', Vector4(0, 1, 0, 0.5F))
Graphics.DrawMesh(aMesh, Vector3(5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddVector('_Color', Vector4(0, 0, 1, 0.5F))
Graphics.DrawMesh(aMesh, Vector3(-5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
// 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);
}
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, new Vector4(1, 0, 0, 0.5F));
Graphics.DrawMesh(aMesh, new Vector3(0, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector(tagID, new Vector4(0, 1, 0, 0.5F));
Graphics.DrawMesh(aMesh, new Vector3(5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty);
materialProperty.Clear();
materialProperty.AddVector(tagID, new Vector4(0, 0, 1, 0.5F));
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, Vector4(1, 0, 0, 0.5F))
Graphics.DrawMesh(aMesh, Vector3(0, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddVector(tagID, Vector4(0, 1, 0, 0.5F))
Graphics.DrawMesh(aMesh, Vector3(5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty)
materialProperty.Clear()
materialProperty.AddVector(tagID, Vector4(0, 0, 1, 0.5F))
Graphics.DrawMesh(aMesh, Vector3(-5, 0, 0), Quaternion.identity, aMaterial, 0, null, 0, materialProperty)