Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

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

Mesh.colors

var colors: Color[];
Color[] colors;
colors as Color[]

Description

Vertex colors of the mesh.

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

	// 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 ExampleClass : 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

public class ExampleClass(MonoBehaviour):

	def Start() as void:
		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.