/// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="LoadSceneName"></param>
    /// <param name="isLoadScene"></param>
    public void SetState(string LoadSceneName, bool isLoadScene = false)
    {
        m_bRunBegin = false;
        //如果上一次的状态还存在 则先释放
        if (m_State != null)
        {
            m_State.StateEnd();
        }
        //先保存一下要切换到那个场景
        m_NextSceneName = LoadSceneName;
        //判断是否要进行加载过渡
        if (isLoadScene)
        {
            LoadScene(m_LoadSceneName);
            m_State = FindState(m_LoadSceneName);
            if (m_State != null)
            {
                m_State.LoadTransitionScene(m_NextSceneName);
            }
        }
        else
        {
            LoadScene(m_NextSceneName);
            m_State = FindState(m_NextSceneName);
        }

        if (m_State == null)
        {
            Debug.LogError("切换状态失败");
        }
    }
Exemple #2
0
    public void SetState(ISceneState state)
    {
        if (_state != null)
        {
            _state.StateEnd(); //让 上一个状态 结束
        }

        _state = state;

        if (isLoadScene)
        {
            _async = SceneManager.LoadSceneAsync(_state.SceneName);
        }
        else
        {
            isLoadScene = true;
            _state.StateStart();
            _isStart = true;
        }


        _isStart = false;
        //场景加载成功后调用
        //_state.StateStart();        //开始下一个状态
    }
Exemple #3
0
    // 設定狀態
    public void SetState(ISceneState State, string LoadSceneName)
    {
        m_LoadSceneName = LoadSceneName;
        //if (LoadSceneName!="")
        //{
        //    m_LoadSceneName = LoadSceneName;
        //}
        //else
        //{
        //    m_LoadSceneName = "StartScene";
        //}
        Debug.Log("SetState:" + State.ToString());

        m_bRunBegin = false;

        // 載入場景
        LoadScene(LoadSceneName);

        // 通知前一個State結束
        if (m_State != null)
        {
            m_State.StateEnd();
            Debug.Log(m_State);
        }


        // 設定
        m_State = State;
        Debug.Log(m_State);
    }
Exemple #4
0
    public void SetState(ISceneState State, string LoadSceneName)
    {
        m_bRunBegin = false;
        LoadScene(LoadSceneName);

        if (m_State != null)
        {
            m_State.StateEnd();
        }
        m_State = State;
    }
Exemple #5
0
        internal void SetState(ISceneState state)
        {
            if (loadSceneOperation != null && !loadSceneOperation.isDone)
            {
                return;
            }
            if (sceneState != null)
            {
                sceneState.StateEnd();
            }

            LoadScene(state);
        }
Exemple #6
0
    public void SetState(ISceneState State, string LoadSceneName, GameLoop _gameLoop)
    {
        Debug.Log("SetState:" + State.ToString());
        m_bRunBegin = false;
        //0430
        gameLoop = _gameLoop;


        //載入場景
        LoadScene(LoadSceneName);
        //gameLoop.StartLoadScene(LoadSceneName);
        //gameLoop.StartCoroutine(LoadAsynchronously(LoadSceneName, State));

        //通知前一個State結束
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        //設定
        m_State = State;
        //gameLoop.StartCoroutine(CheckLoadFinish(State));
    }
    public void SetState(ISceneState _sceneState, string _sceneName)
    {
        runBegin = false;

        LoadScene(_sceneName);

        //如果当前有状态,则通知它结束
        if (sceneState != null)
        {
            sceneState.StateEnd();
        }

        sceneState = _sceneState;
    }
    public void SetState(ISceneState State, string LoadSceneName)
    {
        m_bRunBegin = false;

        LoadScene(LoadSceneName);

        // if last state haven't close, force close state
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        m_State = State;
    }
    //------------------------------------------------------


    //场景设置
    public void SetState(string statename, ISceneState state)
    {
        _mRunBegin = false;
        LoadScene(statename);

        //如果m_state不为空,说明存在上一个场景
        if (_mstate != null)
        {
            //释放上一个场景的资源
            _mstate.StateEnd();
        }

        _mstate = state;
    }
    //设置状态
    public void SetState(ISceneState theSceneState, string LoadSceneName)
    {
        //Debug.Log("SetState; "+State.ToString());
        m_bRunBegin = false;

        //载入场景
        LoadScene(LoadSceneName);

        //通知前一个State结束
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        m_State = theSceneState;
    }
    /// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="state">具体状态的实例</param>
    /// <param name="loadSceneName">场景名称</param>
    public void SetState(ISceneState state, string loadSceneName)
    {
        m_bRunBegin = false;

        //加载场景
        LoadScene(loadSceneName);

        //释放前一个状态
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        //更新状态
        m_State = state;
    }
    public void SetState(ISceneState State, string LoadSceneName)
    {
        Debug.Log("SetState:" + State.ToString());
        m_bRunBegin = false;

        LoadScene(LoadSceneName);


        //close the front(facade) scene
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        m_State = State;
    }
    // 設定狀態
    public void SetState(ISceneState State, string LoadSceneName)
    {
        //Debug.Log ("SetState:"+State.ToString());
        m_bRunBegin = false;

        // 載入場景
        LoadScene(LoadSceneName);

        // 通知前一個State結束
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        // 設定
        m_State = State;
    }
Exemple #14
0
    /// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="State">状态接口</param>
    /// <param name="LoadSceneName">场景名称</param>
    public void SetState(ISceneState State, string LoadSceneName)
    {
        Debug.Log("SetState:" + State.ToString());
        m_bRunBegin = false;

        //载入场景
        LoadScene(LoadSceneName);

        //通知前一个场景结束
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        //设置当前场景
        m_State = State;
    }
    /// <summary>
    /// 加载场景
    /// </summary>
    /// <param name="LoadSceneName"></param>
    private void SetScene(SceneType LoadSceneName)
    {
        UnityTool.M_Debug("状态场景切换");
        //加载过渡场景
        m_transitionScene.StateBegin();
        SceneManager.LoadScene(SceneType.TransitionScene.ToString());

        m_bRunBegin = false;
        // 异步加载场景
        AsyncLoadScene(LoadSceneName.ToString());

        // 前一个场景结束
        if (m_State != null)
        {
            m_State.StateEnd();
        }
    }
 public void SetState(ISceneState state, bool isLoadScene = true)
 {
     if (mState != null)
     {
         mState.StateEnd();//上一个状态的清理工作
     }
     mState = state;
     if (isLoadScene)
     {
         mAO           = SceneManager.LoadSceneAsync(state.SceneName);
         mIsRunedStart = false;
     }
     else
     {
         mState.StateStart();
         mIsRunedStart = true;
     }
 }
    /// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="State"></param>
    /// <param name="LoadLevelName"></param>
    public void SetState(ISceneState State, string LoadLevelName)
    {
        Debug.Log("SetState:" + State.ToString());

        m_bRunBegin = false;

        //载入场景
        LoadLevel(LoadLevelName);

        //让前一个场景状态结束
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        //设置状态
        m_State = State;
    }
Exemple #18
0
 public void SetState(ISceneState sceneState, bool isLoadScene = true)
 {
     if (mISceneState != null)
     {
         mISceneState.StateEnd();
     }
     mISceneState = sceneState;
     if (isLoadScene)
     {
         mStateAO    = SceneManager.LoadSceneAsync(mISceneState.SceneName);
         mIsRunStart = false;
     }
     else
     {
         mISceneState.StateStart();
         mIsRunStart = true;
     }
 }
Exemple #19
0
    private bool mIsRunStart = false; //是否启动当前状态,主要是判断场景是否加载完毕

    public void SetState(ISceneState state, bool isLoadScene)
    {
        if (mState != null)
        {
            mState.StateEnd();//让上一个场景状态做一下清理工作
        }
        mState = state;
        if (isLoadScene)
        {
            mAO         = SceneManager.LoadSceneAsync(mState.getName());
            mIsRunStart = false;
        }
        else
        {
            mState.StateStart();//启动当前状态的初始化操作
            mIsRunStart = true;
        }
    } //设置场景状态,加载场景,清理上一个场景等操作
Exemple #20
0
 public void SetState(ISceneState state, bool isLoadScene = true)
 {
     if (mState != null)
     {
         //让上一个场景状态做一下清理工作
         mState.StateEnd();
     }
     mState = state;
     if (isLoadScene)
     {
         mAO         = SceneManager.LoadSceneAsync(mState.SceneName);
         mIsRunStart = false;
     }
     else
     {
         mState.StateStart();
         mIsRunStart = true;
     }
 }
Exemple #21
0
    public void SetState(ISceneState state, bool isLoadScene = true)
    {
        if (mState != null)
        {
            mState.StateEnd();      // 对上一个场景做清理工作
        }

        mState = state;

        // 如果需要加载该场景(默认true), 进行加载事件。 否则直接执行 StateStart() 方法。
        if (isLoadScene)
        {
            mAO = SceneManager.LoadSceneAsync(mState.SceneName);
        }
        else
        {
            mState.StateStart();
        }
    }
 public void SetState(ISceneState state, bool isLoadScene = true)
 {
     if (mState != null)
     {
         mState.StateEnd();
     }
     mState = state;
     //需要加载的情况
     if (isLoadScene)
     {
         //异步加载
         mAO         = SceneManager.LoadSceneAsync(mState.SceneName);
         mIsRunStart = false;
     }
     else
     {
         mState.StateStart();
         mIsRunStart = true;
     }
 }
Exemple #23
0
    private bool m_IsRunStart = false; //判断是否执行过一次StateStart方法


    /// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="state"></param>
    /// <param name="isLoadScene">是否需要加载场景</param>
    public void SetState(ISceneState state, bool isLoadScene = true)
    {
        if (m_State != null)
        {
            m_State.StateEnd();  //让上一个场景进行清理工作
        }
        m_State = state;

        if (isLoadScene)
        {
            //异步加载场景
            m_Ao         = SceneManager.LoadSceneAsync(m_State.SceneName);
            m_IsRunStart = false;
        }
        else
        {
            m_State.StateStart();
            m_IsRunStart = true;
        }
    }
    /// <summary>
    /// 设置当前状态
    /// </summary>
    /// <param name="State"></param>
    /// <param name="LoadSceneName"></param>
    public void SetState(string LoadSceneName)
    {
        m_bRunBegin = false;

        //加载场景
        LoadScene(LoadSceneName);

        //清理上一个场景
        if (m_State != null)
        {
            m_State.StateEnd();
        }

        //改变当前状态
        if (caChe.ContainsKey(LoadSceneName))
        {
            m_State = caChe[LoadSceneName];
            return;
        }
        Debug.LogError("库内未存储此状态!!!" + LoadSceneName);
    }
    public void SetState(ISceneState state, bool isLoadScene = true)
    {
        //通知前一个State结束
        if (state != null)
        {
            state.StateEnd();
        }
        Debug.Log("SetState:" + state.ToString());

        this.state = state;

        if (isLoadScene)
        {
            m_AO       = SceneManager.LoadSceneAsync(state.SceneName);
            isRunStart = false;
        }
        else
        {
            state.StateStart();
            isRunStart = true;
        }
    }
    private bool mIsRunStartState = false; // 是否运行过 StartState 方法

    /// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="state">状态</param>
    /// <param name="isLoadScene">是否需要加载场景</param>
    public void SetState(ISceneState state, bool isLoadScene = true)
    {
        // 如果当前状态不为空,就让当前状态做一下清理工作
        if (mSceneState != null)
        {
            mSceneState.StateEnd();
        }
        // 设置当前状态
        mSceneState = state;
        // 加载指定状态
        if (isLoadScene) // 是否需要加载场景
        {
            // 异步加载场景
            mAO = SceneManager.LoadSceneAsync(mSceneState.SceneName);
            mIsRunStartState = false;
        }
        else
        {
            mSceneState.StateStart(); // 设置开始状态
            isLoadScene = true;
        }
    }