示例#1
0
    public void StopStateMechine(BattleResult result)
    {
        //清理所有格子
        BattleboxHelper.Instance.ClearAllBlocks();
        //相机照射主角
        CameraHelper.Instance.ChangeFollow(GameRuntimeData.Instance.Player.View.transform);
        //Jyx2_UIManager.Instance.HideUI("BattleActionOrderPanel");
        IBattleState curState = GetState(m_currentState);

        if (curState != null)
        {
            curState.OnLeaveState();
        }
        if (m_roleFocusRing != null)
        {
            Jyx2ResourceHelper.ReleasePrefabInstance(m_roleFocusRing);
            m_roleFocusRing = null;
        }
        m_currentState = BattleManager.BattleViewStates.None;
        CurrentRole    = null;
        m_callback?.Invoke(result);
    }
示例#2
0
    public void SwitchState(BattleManager.BattleViewStates toState)
    {
        if (toState == m_currentState)
        {
            IBattleState temp = GetState(toState);
            temp.RefreshState();//说明是刷新状态
            return;
        }
        IBattleState toObj = GetState(toState);

        if (toObj == null)
        {
            Debug.LogError("不存在状态" + toState.ToString() + ",无法完成转换");
            return;
        }
        IBattleState curState = GetState(m_currentState);

        if (curState != null)
        {
            curState.OnLeaveState();
        }
        m_currentState = toState;
        toObj.OnEnterState();
    }