/// <summary>
    /// 执行转换,外部调用关键方法。
    /// </summary>
    /// <param name="trans">Trans.</param>
    public void PerformTransition(EBehaviourTransition trans, object param = null)
    {
        if (!CanTransition(trans))
        {
            return;
        }

        _CurStateID = _CurState.GetOutputState(trans);
        foreach (BehaviourState state in _States)
        {
            if (state.ID == _CurStateID)
            {
                _CurState.OnExit();
                _CurState = state;
                _CurState.OnEnterBefore();
                _CurState.OnEnter(param);
                break;
            }
        }
    }