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 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.