1 /*
2 * 通过改变Mesh组件的Color来改变颜色
3 * */
4 using UnityEngine;
5 using System.Collections;
6
7 public class ColorChangerVertex : MonoBehaviour
8 {
9
10 Mesh mesh;
11 //定义一个颜色数组,Color数组中有4个数,RGBA
12 Color[] meshColors;
13
14 void Start() {
15 mesh = GetComponent<MeshFilter>().mesh;
16 meshColors = new Color[mesh.vertices.Length];
17 }
18
19 // Update is called once per frame
20 void Update() {
21 //让RGB随关卡加载时间改变Time.timeSinceLevelLoad
22 for (int i=0; i<meshColors.Length; ++i) {
23 float offset = mesh.vertices[i].magnitude;
24 float r = Mathf.Abs(Mathf.Sin(Time.timeSinceLevelLoad + offset));
25 float g = Mathf.Abs(Mathf.Sin(Time.timeSinceLevelLoad * 0.45f + offset));
26 float b = Mathf.Abs(Mathf.Sin(Time.timeSinceLevelLoad * 1.2f + offset));
27 Color newColor = new Color(r,g,b);
28
29 meshColors [i] = newColor;
30 }
31 mesh.colors = meshColors;
32
33 }
34
35 }