Beispiel #1
0
    public void PlayAnimation(EntityAction action, EntityParamPluginAnimationClip clip)
    {
        if (action == null || clip == null)
        {
            return;
        }
        var animationClip = GetAnimationClip(clip.animationClip);

        if (animationClip == null)
        {
            return;
        }



        if (mCurrentAnimationClip == null ||
            animationClip != mCurrentAnimationClip ||
            animationClip.isLooping == false)
        {
            animator.Play("empty", 0);
            animator.Update(0);
            if (clip.beginAt > 0)
            {
                animator.Play(clip.animationClip, 0, clip.beginAt / animationClip.length);
            }
            else
            {
                animator.CrossFade(clip.animationClip, 0.5f, 0);
            }

            mCurrentAnimationClip = animationClip;

            mParamAnimationClip = clip;
        }
    }
    protected virtual void PlayAnimation(EntityParamPluginAnimationClip animationClip)
    {
        if (agent.model != null && agent.param != null)
        {
            agent.model.PlayAnimation(action, animationClip);
        }

        mParamAnimationClip = animationClip;
        mBeginTime          = action.time;
    }
Beispiel #3
0
 public override void ParseXml(XmlElement node)
 {
     if (node != null)
     {
         for (int i = 0; i < node.ChildNodes.Count; i++)
         {
             var child     = node.ChildNodes[i] as XmlElement;
             var animation = new EntityParamPluginAnimationClip();
             animation.beginAt       = child.GetAttribute("beginAt").ToFloatEx();
             animation.animationClip = child.GetAttribute("animationClip");
             animation.length        = child.GetAttribute("length").ToFloatEx();
             animation.speed         = child.GetAttribute("speed").ToFloatEx(1);
             animations.Add(animation);
         }
     }
     base.ParseXml(node);
 }
Beispiel #4
0
 public void OnAgentExit(State state)
 {
     mParamAnimationClip = null;
 }
 public override void OnStateExit()
 {
     base.OnStateExit();
     mParamAnimationClip = null;
     mBeginTime          = 0;
 }