Exemple #1
0
        internal void LeaveState()
        {
            IsCurrentState = false;
            if (OnStateLeave != null)
            {
                OnStateLeave.Invoke();
            }

            if (HasInnerState)
            {
                foreach (Orthogonal <S, T, G> ort in Orthogonals.Values)
                {
                    ort.SM.Terminate();
                }
            }
        }
 public override void resetProperty()
 {
     base.resetProperty();
     mOnLeave       = null;
     mPlayer        = null;
     mData          = null;
     mParam         = null;
     mStateMaxTime  = -1.0f;
     mStateTime     = -1.0f;
     mActive        = true;
     mMutexID       = 0;
     mID            = 0;
     mBuffStateType = 0;
     // 此处不能重置互斥类型,此字段一般在子类的构造中进行指定,一旦指定就不会改变,也就不会被重置
     // 如果重置,则在复用后互斥类型就会错误
     //mMutexType = STATE_MUTEX.COEXIST;
     mIgnoreTimeScale = false;
 }
 public void setLeaveCallback(OnStateLeave callback)
 {
     mLeaveCallback = callback;
 }