Exemplo n.º 1
0
        /// <summary>
        /// 加载新场景
        /// </summary>
        private void LoadNewScene()
        {
            m_CurrSceneEntity     = GameEntry.DataTable.DataTableManager.Sys_SceneDBModel.Get(m_CurrLoadSceneId);
            m_CurrSceneDetailList = GameEntry.DataTable.DataTableManager.Sys_SceneDetailDBModel.GetListBySceneId(m_CurrSceneEntity.Id, 2);
            m_NeedLoadOrUnloadSceneDetailCount = m_CurrSceneDetailList.Count;

            for (int i = 0; i < m_NeedLoadOrUnloadSceneDetailCount; i++)
            {
                SceneLoaderRoutine routine = GameEntry.Pool.DequeueClassObject <SceneLoaderRoutine>();
                m_SceneLoaderList.AddLast(routine);

                Sys_SceneDetailEntity entity = m_CurrSceneDetailList[i];
                routine.LoadScene(entity.Id, entity.ScenePath, OnLoadSceneProgressUpdate, OnLoadSceneComplete);
            }
        }
    /// <summary>
    /// 根据场景编号获取场景明细
    /// </summary>
    /// <param name="sceneId">场景编号</param>
    /// <param name="sceneGrade">等级</param>
    /// <returns></returns>
    public List <Sys_SceneDetailEntity> GetListBySceneId(int sceneId, int sceneGrade)
    {
        m_retLst.Clear();
        List <Sys_SceneDetailEntity> lst = this.GetList();
        int len = lst.Count;

        for (int i = 0; i < len; i++)
        {
            Sys_SceneDetailEntity entity = lst[i];
            if (entity.SceneId == sceneId && entity.SceneGrade <= sceneGrade)
            {
                m_retLst.Add(entity);
            }
        }
        return(m_retLst);
    }