public Color Evaluate(float time) { ColorKey keyLeft = keys[0]; ColorKey keyRight = keys[keys.Count - 1]; for (int i = 0; i < keys.Count; i++) { if (keys[i].Time <= time) { keyLeft = keys[i]; } if (keys[i].Time >= time) { keyRight = keys[i]; break; } } if (blendMode == BlendMode.Linear) { float blendTime = Mathf.InverseLerp(keyLeft.Time, keyRight.Time, time); return(Color.Lerp(keyLeft.Color, keyRight.Color, blendTime)); } else { return(keyRight.Color); } }
public int AddKey(Color color, float time) { ColorKey newKeys = new ColorKey(color, time); for (int i = 0; i < keys.Count; i++) { if (newKeys.Time < keys[i].Time) { keys.Insert(i, newKeys); return(i); } } keys.Add(newKeys); return(keys.Count - 1); }
public static ColorKeyData ColorKeyToColorKeyData(ColorKey key) { return(new ColorKeyData(new float3(key.Color.r, key.Color.g, key.Color.b), key.Time)); }
public void UpdateKeyColor(int index, Color color) { keys[index] = new ColorKey(color, keys[index].Time); }