Exemplo n.º 1
0
 protected override void OnMixer(float time, MixClip mix)
 {
     if (mixPlayable.IsValid())
     {
         if (!mix.connect || !Application.isPlaying)
         {
             XAnimationClip clipA = (XAnimationClip)mix.blendA;
             XAnimationClip clipB = (XAnimationClip)mix.blendB;
             if (clipA && clipB)
             {
                 mixA = clipA.playable;
                 mixB = clipB.playable;
             }
         }
         mix.connect = true;
         float weight = (time - mix.start) / mix.duration;
         if (mixA.IsValid() && mixB.IsValid())
         {
             mixJob.weight = weight;
             mixPlayable.SetJobData(mixJob);
         }
         else
         {
             string tip = "playable invalid while animating mix ";
             Debug.LogError(tip + mixA.IsValid() + " " + mixB.IsValid());
         }
     }
 }
Exemplo n.º 2
0
 protected void AddMix(MixClip mix)
 {
     if (mixs == null)
     {
         mixs = new List <MixClip>();
     }
     if (!mixs.Contains(mix))
     {
         mixs.Add(mix);
     }
 }
Exemplo n.º 3
0
 private bool MixTriger(float time, out MixClip mixClip)
 {
     if (mixs != null)
     {
         int cnt = mixs.Count;
         for (int i = 0; i < cnt; i++)
         {
             if (mixs[i].IsIn(time))
             {
                 mixClip = mixs[i];
                 return(true);
             }
         }
     }
     mixClip = null;
     return(false);
 }
Exemplo n.º 4
0
 protected virtual void OnMixer(float time, MixClip mix)
 {
 }