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);
        }
Exemple #3
0
 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);
 }