public void PerformnTransition(SoldierTransition trans)
    {
        if (trans == SoldierTransition.NullTransition)
        {
            Debug.Log("PerformnTransition 无法执行 NullTransition ");
            return;
        }

        SoldierStateID id = CurrentSoldierState.GetIDByTransition(trans);

        if (id == SoldierStateID.NullState)
        {
            Debug.Log("PerformnTransition 无法执行 NullState ");
            return;
        }

        foreach (AbsSoldierState s in statesList)
        {
            if (s.StateID == id)
            {
                CurrentSoldierState.DoBeforeLeaving();
                CurrentSoldierState = s;
                CurrentSoldierState.DoBeforeEntering();
            }
        }
    }
    public void AddState(AbsSoldierState state)
    {
        if (state == null)
        {
            Debug.Log("AddState state 为空无法添加");
            return;
        }
        if (statesList.Contains(state))
        {
            Debug.Log("AddState " + state.StateID + " 已经存在,无法添加");
            return;
        }

        statesList.Add(state);
        if (statesList.Count == 1)
        {
            CurrentSoldierState = state;
        }
    }