示例#1
0
 public override void Play(Transition _transition)
 {
     AnimState src = _transition.source as AnimState;
     if ( src != null ) {
     Blend( src, 0.0f, _transition );
     }
 }
示例#2
0
 /// <summary> 播放本状态的动作 </summary>
 public virtual void Play(Transition _transition)
 {
     DoPlay(_transition, name);
 }
示例#3
0
 public void Blend( AnimState _s, float _to, Transition _transition)
 {
     if ( _s.curAnimName != null ) {
     _s.anim.Blend(_s.curAnimName, _to, ((TimerTransition)_transition).duration);
     }
 }
示例#4
0
 public override void Play(Transition _transition)
 {
 }
示例#5
0
 public override void Play(Transition _transition)
 {
     switch (playMode) {
     case PlayMode.Loop:
     lastAnimIndex = (lastAnimIndex+1) % animList.Length;
     DoPlay(_transition, animList[lastAnimIndex]);
     break;
     case PlayMode.Random:
     DoPlay(_transition, animList[Random.Range(0, animList.Length)]);
     break;
     }
 }
示例#6
0
 public override void Play(Transition _transition)
 {
     AnimState animState = initState as AnimState;
     if ( animState != null ) {
     animState.Play(_transition);
     curAnimName = animState.curAnimName;
     }
 }
示例#7
0
        protected void DoPlay(Transition _transition, string _animName)
        {
            if (string.IsNullOrEmpty(_animName)) {
            anim.Stop();
            curAnimName = null;

            return;
            }

            // NOTE: we will change transition's scale here
            AnimTransition animTrans = _transition as AnimTransition;
            AnimationState nextAnimationState = anim[_animName];
            if ( nextAnimationState &&
             animTrans != null &&
             nextAnimationState.speed != 0.0f )
            {
            animTrans.scale = 1.0f/nextAnimationState.speed;
            }

            // check if rewind
            if (_animName == curAnimName) {
            anim.Rewind(_animName);
            }

            //
            if (animTrans == null || animTrans.duration == 0.0f) {
            anim.Play(_animName);
            }
            else {
            // sync n-time
            if ( animTrans.syncNormalizedTime ) {
                AnimState lastState = _transition.source as AnimState;
                if ( lastState != null ) {
                    nextAnimationState.normalizedTime = lastState.normalizedTime;
                }

                anim.Blend(lastState.curAnimName, 0.0f, animTrans.duration);
                anim.Blend(_animName, 1.0f, animTrans.duration);
            }
            else {
                anim.CrossFade(_animName, animTrans.duration);
            }
            }

            curAnimName = _animName;
        }