- Home /
How to change colors in turn?
I want to change colors in turn, white, yellow, orange, red, purple, blue, and black every time collision. Now I use this random change code.
using UnityEngine;
public class ChangeColorOnHit : MonoBehaviour {
void OnCollisionEnter(Collision collision) {
var r = Random.Range(0f, 1f);
var g = Random.Range(0f, 1f);
var b = Random.Range(0f, 1f);
GetComponent<Renderer>().material.color = new Color(r, g, b);
}
}
I don't know how to fix it. Please someone help me?
Comment
Best Answer
Answer by Hellium · Dec 17, 2017 at 01:46 PM
using UnityEngine;
public class ChangeColorOnHit : MonoBehaviour {
// Define your colors in the inspector
public Color[] Colors = new Color[]
{
Color.white,
Color.yellow,
Color.red,
Color.black
};
private int colorIndex = 0 ;
void OnCollisionEnter(Collision collision)
{
GetComponent<Renderer>().material.color = Colors[colorIndex];
colorIndex = (colorIndex + 1) % Colors.Length;
}
}