Mesh.colors Manual     Reference     Scripting  
Scripting > Runtime Classes > Mesh
Mesh.colors

var colors : Color[]

Description

Vertex colors of the mesh.

If no vertex colors are available an empty array will be returned.

JavaScript
// Sets the vertex color to be red at the y=0 and green at y=1.
// (Note that most builtin shaders don't display vertex colors, you can
// use eg. a particle shader to see vertex colors)

function Start () {
var mesh : Mesh = GetComponent(MeshFilter).mesh;
var vertices : Vector3[] = mesh.vertices;
var colors : Color[] = new Color[vertices.Length];

for (var i = 0; i < vertices.Length;i++)
colors[i] = Color.Lerp(Color.red, Color.green, vertices[i].y);

mesh.colors = colors;
}

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
void Start() {
Mesh mesh = GetComponent<MeshFilter>().mesh;
Vector3[] vertices = mesh.vertices;
Color[] colors = new Color[vertices.Length];
int i = 0;
while (i < vertices.Length) {
colors[i] = Color.Lerp(Color.red, Color.green, vertices[i].y);
i++;
}
mesh.colors = colors;
}
}

import UnityEngine
import System.Collections

class example(MonoBehaviour):

def Start():
mesh as Mesh = GetComponent[of MeshFilter]().mesh
vertices as (Vector3) = mesh.vertices
colors as (Color) = array[of Color](vertices.Length)
i as int = 0
while i < vertices.Length:
colors[i] = Color.Lerp(Color.red, Color.green, vertices[i].y)
i++
mesh.colors = colors

For performance reasons, consider using colors32 instead. This will avoid byte-to-float conversions in colors, as well as use less temporary memory.