Ejemplo n.º 1
0
        public Color Evaluate(float time)
        {
            if (keys.Count < 2)
            {
                return(Color.white);
            }

            ColourKey keyLeft  = keys[0];
            ColourKey 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));
            }
            return(keyRight.Color);
        }
Ejemplo n.º 2
0
    public ColourKey GetKey(int i)
    {
        float r    = AnimationCurves[0].GetKeyframe(i).value;
        float time = AnimationCurves[0].GetKeyframe(i).time;

        Debug.Log("时间" + time);
        float     g    = AnimationCurves[1].GetKeyframe(i).value;
        float     b    = AnimationCurves[2].GetKeyframe(i).value;
        ColourKey temp = new ColourKey(new Color(r, g, b), time);

        Debug.Log("temp的时间" + temp.Time);
        return(temp);
    }
Ejemplo n.º 3
0
    public void AddKey(Color colour, float time)
    {
        ColourKey newKey = new ColourKey(colour, time);

        for (int i = 0; i < keys.Count; i++)
        {
            if (newKey.Time < keys[i].Time)
            {
                keys.Insert(i, newKey);
                return;
            }
        }
        keys.Add(newKey);
    }
    public int AddKey(Color colour, float time)
    {
        ColourKey key = new ColourKey(colour, time);

        for (int i = 0; i < keys.Count; i++)
        {
            if (key.Time < keys[i].Time)
            {
                keys.Insert(i, key);
                return(i);
            }
        }

        keys.Add(key);
        return(keys.Count - 1);
    }
    public Color Evaluate(float time)
    {
        ColourKey keyLeft  = keys[0];
        ColourKey keyRight = keys[keys.Count - 1];

        // for (int i = 0; i < keys.Count - 1; i++)
        // {
        //   if (keys[i].Time < time && keys[i + 1].Time >= time)
        //   {
        //     keyLeft = keys[i];
        //     keyRight = keys[i + 1];
        //     break;
        //   }
        // }

        for (int i = 0; i < keys.Count; i++)
        {
            ColourKey key = keys[i];
            if (key.Time <= time)
            {
                keyLeft = key;
            }
            if (key.Time >= time)
            {
                keyRight = key;
                break;
            }
        }

        if (blendMode == BlendMode.Linear)
        {
            float blendTime = Mathf.InverseLerp(keyLeft.Time, keyRight.Time, time);
            return(Color.Lerp(keyLeft.Colour, keyRight.Colour, blendTime));
        }

        return(keyRight.Colour);
    }
Ejemplo n.º 6
0
    public Color Evaluate(float time)
    {
        if (keys.Count == 0)
        {
            return(Color.white);
        }

        ColourKey keyLeft  = keys[0];
        ColourKey keyRight = keys[keys.Count - 1];

        for (int i = 0; i < keys.Count - 1; i++)
        {
            if (keys[i].Time <= time && keys[i + 1].Time >= time)
            {
                keyLeft  = keys[i];
                keyRight = keys[i + 1];
                break;
            }
        }

        float blendTime = Mathf.InverseLerp(keyLeft.Time, keyRight.Time, time);

        return(Color.Lerp(keyLeft.Colour, keyRight.Colour, blendTime));
    }
Ejemplo n.º 7
0
 public void UpdateKeyColour(int index, Color col)
 {
     keys[index] = new ColourKey(col, keys[index].Time);
 }
    public void UpdateKeyColour(int index, Color colour)
    {
        ColourKey key = GetKey(index);

        keys[index] = new ColourKey(colour, key.Time);
    }