コード例 #1
0
    public void ChangeState(NFAnimaStateType eState, int index, NFStateData data = null)
    {
        if (mCurrentState == eState)
        {
            return;
        }

        if (mCurrentState != NFAnimaStateType.NONE && mStateDictionary.ContainsKey(mCurrentState))
        {
            mStateDictionary[mCurrentState].Exit(this.gameObject);
        }

        if (mStateDictionary.ContainsKey(eState))
        {
            mLastState    = mCurrentState;
            mCurrentState = eState;

            mStateDictionary[mCurrentState].xStateData = data;
            mStateDictionary[mCurrentState].Enter(this.gameObject, index);
        }
        else
        {
            Debug.LogError("ChangeState to " + mCurrentState + " from " + mLastState);
        }
    }
コード例 #2
0
 public virtual void Enter(GameObject gameObject, NFStateData data)
 {
     /*
      *      xStateData = data;
      *      mbEnterData = true;
      *
      *      Enter (gameObject);
      */
 }
コード例 #3
0
    public void InputStateData(NFAnimaStateType eNewState, NFAnimaStateType eLastState, float fSpeed, int nTime, Vector3 vNowPos, Vector3 vTargetPos, Vector3 vMoveDirection)
    {
        if (IsMainRole())
        {
            return;
        }

        //Debug.Log ("In SyncData: " + id.ToString() + eNewState.ToString() + " TargetPos: " + vTargetPos.x + "," + vTargetPos.y+ "," + vTargetPos.z );

        NFStateData data = new NFStateData();

        data.vTargetPos     = vTargetPos;
        data.fSpeed         = fSpeed;
        data.xMoveDirection = vMoveDirection;
    }