Exemple #1
0
    void onClick_Return_Btn(GameObject caster)
    {
        Engine.IRenderSystem renderSys = Engine.RareEngine.Instance().GetRenderSystem();
        for (int i = m_CurShowEffect.Count - 1; i >= 0; i--)
        {
            Engine.IEffect effect = m_CurShowEffect[i];
            renderSys.RemoveEffect(effect);
        }
        m_CurShowEffect.Clear();

        ResetCameraAnimator();



        //返回选择角色界面
        if (DataManager.Manager <LoginDataManager>().RoleList.Count > 0)
        {
            StepManager.Instance.AddLoginScene(StepManager.CHOOSEROLESCENE, UnityEngine.SceneManagement.LoadSceneMode.Additive, (obj) =>
            {
                DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.ChooseRolePanel);
            });
        }
        else
        {
            //StepManager.Instance.AddLoginScene(StepManager.LOGINSCENE, (obj) =>
            //{
            //    DataManager.Manager<UIPanelManager>().ShowPanel(PanelID.LoginPanel);
            //});
            DataManager.Manager <LoginDataManager>().Logout(LoginPanel.ShowUIEnum.StartGame);
        }

        HideSelf();
    }
Exemple #2
0
        public void SetSettingScreenPriority(uint priority)
        {
            SettingDataBase data = GameTableManager.Instance.GetTableItem <SettingDataBase>(priority);

            if (data != null)
            {
                //草地扰动
                bool       grassIsOpen = (data.GrassMoveGrade != 0) ? true : false;
                IMapSystem mapSys      = ClientGlobal.Instance().GetMapSystem();
                mapSys.EnableGrassForce(grassIsOpen);

                Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
                if (rs != null)
                {
                    //实时阴影
                    rs.SetShadowLevel((Engine.ShadowLevel)data.RealTime_Shadow);

                    //特效等级
                    rs.effectLevel = (int)data.ParticleGrade;
                }

                //同屏人数
                Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem();
                int value = (int)data.PlayerNum;
                if (es != null)
                {
                    if (value > MAX_PLAYER || value < MIN_PLAYER)
                    {
                        value = MIN_PLAYER;
                    }
                    es.MaxPlayer = value;
                }
            }
        }
Exemple #3
0
    protected override void OnLoading()
    {
        base.OnLoading();
        rs = Engine.RareEngine.Instance().GetRenderSystem();
        if (rs != null)
        {
            rd   = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>(50003);
            path = rd.strPath;
        }
        m_widget = GetComponent <UIWidget>();


        m_listDataType = new List <DailyDataType>()
        {
            DailyDataType.RiChangHuoDong, DailyDataType.XianShiHuoDong, DailyDataType.JiJiangKaiShi, DailyDataType.ZhouLi,
        };

        m_lst_RewardList = GameTableManager.Instance.GetTableList <DailyAwardDataBase>();
        for (int i = 0; i < m_lst_RewardList.Count; i++)
        {
            if (!m_lstRewardID.Contains(m_lst_RewardList[i].ID))
            {
                m_lstRewardID.Add(m_lst_RewardList[i].ID);
            }
        }

        UIEventListener.Get(m__Model.gameObject).onDrag = DragModel;
    }
Exemple #4
0
    //播放受击特效
    public uint ReqPlayHitFx(string fx_name, Vector3 position, Vector3 rotation, Vector3 scale, int level = 0)
    {
        Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
        if (rs == null)
        {
            return(0);
        }
        if (string.IsNullOrEmpty(fx_name))
        {
            return(0);
        }
        string path = fx_name;// (FxDir + fx_name).Replace(".prefab", ".fx").ToLower();

        IEffect effect = null;

        rs.CreateEffect(ref path, ref effect, (obj) =>
        {
            if (obj == null)
            {
                Log.LogGroup("ZDY", "fx load failed: {0}", path);
                return;
            }
            if (obj.GetNodeTransForm() == null)
            {
                return;
            }
            DoPlay(obj.GetNodeTransForm().gameObject, position, rotation, scale);
        }, nLevel: level);
        return(effect.GetID());
    }
Exemple #5
0
    /// <summary>
    /// //挂接特效
    /// </summary>
    /// <param name="fx_name"></param>
    /// <param name="attach_node">挂节点</param>
    /// <param name="position">偏移位置</param>
    /// <param name="scale">缩放</param>
    public uint ReqPlayFx(string fx_name, Transform attach_node, Vector3 position, Vector3 scale, int level = 0)
    {
        Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
        if (rs == null)
        {
            return(0);
        }
        string path = fx_name;

        if (fx_name.EndsWith(".prefab"))
        {//先做下对老的兼容
            path = (FxDir + fx_name).Replace(".prefab", ".fx").ToLower();
        }

        IEffect effect = null;

        rs.CreateEffect(ref path, ref effect, (obj) =>
        {
            if (obj == null)
            {
                Log.Error("ReqPlayFx obj ================ fx load failed: " + path);
                return;
            }
            if (obj.GetNodeTransForm() == null)
            {
                Log.Error("ReqPlayFx GetNodeTransForm ================ fx load failed: " + path);
                return;
            }
            DoPlay(obj.GetNodeTransForm().gameObject, attach_node, position, scale);
        }, nLevel: level);
        return(effect.GetID());
    }
Exemple #6
0
        public void SetRenderShadow()
        {
            int nShadowLevel = ClientGlobal.Instance().gameOption.GetInt("Render", "shadow", 0);

            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs != null)
            {
                rs.SetShadowLevel((Engine.ShadowLevel)nShadowLevel);
            }
        }
Exemple #7
0
    private void CloseTerrainPos(ref Vector3 curPos)
    {
        Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
        if (rs == null)
        {
            return;
        }

        // 再计算移动速度
        IScene m_curScene = rs.GetActiveScene();

        if (m_curScene == null)
        {
            return;
        }

        //和周围墙做碰撞修正
        // 计算得到新位置,还需要做一次碰撞检测,看是否可以行走
        //Ray rayLine = new Ray(m_vLastPos, pos - m_vLastPos);
        //Engine.ColliderInfo colliderInfo = new Engine.ColliderInfo();
        //float fDis = Vector3.Distance(pos, m_vLastPos);
        //if (m_curScene.GetColliderInfo(ref rayLine, ref colliderInfo))
        //{
        //    //Engine.Utility.Log.Trace("Dis:{0}", colliderInfo.distance);
        //    if (colliderInfo.distance < 1.5f) // 应当是玩家的半径
        //    {
        //        //                     if (colliderInfo.distance < fDis)
        //        //                     {
        //        //                         pos = m_vLastPos + Vector3.Normalize(m_vSpeed) * colliderInfo.distance;
        //        //                     }
        //        //                     else
        //        //                     {
        //        //            m_jumpSpeed =  Vector3.up * _jumpUp;
        //        //             m_vSpeed = m_jumpSpeed ;
        //        m_vSpeed = m_vSpeed - Vector3.Dot(m_vSpeed, colliderInfo.normal) * colliderInfo.normal;
        //        pos = m_vLastPos + m_vSpeed * Time.deltaTime;
        //        /*                    }*/
        //    }
        //}

        Engine.TerrainInfo info;
        if (m_curScene.GetTerrainInfo(ref curPos, out info))
        {
            //斜坡速度衰减.... 去掉
            //Vector3 right = Vector3.Cross(info.normal, m_dir);
            //Vector3 speed = Vector3.Cross(right, info.normal);
            //float cos = Vector3.Dot(m_dir, speed);

            //m_fSpeedTerrainFact = cos;
        }

        curPos.y = info.pos.y;
    }
Exemple #8
0
        //-------------------------------------------------------------------------------------------------------

        /**
         * @brief 退出当前场景
         * @param
         */
        public void ExitMap()
        {
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs != null)
            {
                rs.ExitScene();
            }
            mapID        = 0;
            m_bFirstLoad = true; // 清空标识
            m_dicNpcInfo.Clear();
            m_strMapTexturePath = "";
        }
Exemple #9
0
        public override void Dead()
        {
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return;
            }

            Engine.IEffect effect = rs.GetEffect(m_uEffectID);
            if (effect != null)
            {
                rs.RemoveEffect(effect);
            }
        }
Exemple #10
0
        IEffect GetEffectByID(uint id)
        {
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return(null);
            }

            Engine.IEffect effect = rs.GetEffect(id);
            if (effect != null)
            {
                return(effect);
            }
            return(null);
        }
Exemple #11
0
        //-------------------------------------------------------------------------------------------------------

        /**
         * @brief 屏幕点击位置转换到场景坐标
         * @param pos 屏幕位置
         * @param scenePos 场景位置
         */
        public bool GetScenePos(Vector2 pos, out Engine.TerrainInfo terrainInfo)
        {
            terrainInfo = null;
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return(false);
            }

            // 再计算移动速度
            Engine.IScene scene = rs.GetActiveScene();
            if (scene == null)
            {
                return(false);
            }

            return(scene.GetPickupPos(pos, out terrainInfo));
        }
Exemple #12
0
    private void LoadEffect(string strEffect, int nCount = 1)
    {
        Engine.IRenderSystem  renderSys = Engine.RareEngine.Instance().GetRenderSystem();
        Engine.IEffect        effect    = null;
        List <Engine.IEffect> temp      = new List <IEffect>();

        for (int i = 0; i < nCount; i++)
        {
            renderSys.CreateEffect(ref strEffect, ref effect, null, Engine.TaskPriority.TaskPriority_Normal, true);
            temp.Add(effect);
        }


        for (int i = 0; i < nCount; i++)
        {
            renderSys.RemoveEffect(temp[i]);
        }
        temp.Clear();
    }
Exemple #13
0
        // 实体销毁
        public void Release()
        {
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return;
            }
            foreach (var part in m_Parts)
            {
                part.Value.Release();
            }

            EntityViewCreator.Instance.RemoveView(m_lID);

            if (m_EntityView != null)
            {
                m_EntityView.Close();
            }
        }
Exemple #14
0
    void AddEffect(Vector3 pos, uint effectID)
    {
        FxResDataBase edb = GameTableManager.Instance.GetTableItem <FxResDataBase>(effectID);

        if (edb != null)
        {
            // 使用资源配置表
            ResourceDataBase resDB = GameTableManager.Instance.GetTableItem <ResourceDataBase>(edb.resPath);
            if (resDB == null)
            {
                Engine.Utility.Log.Error("EffectViewFactory:找不到特效资源路径配置{0}", edb.resPath);
                return;
            }
            string path = resDB.strPath;


            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return;
            }
            IEffect effect = null;
            rs.CreateEffect(ref path, ref effect, (obj) =>
            {
                if (obj == null)
                {
                    Log.Error("fx load failed: " + path);
                    return;
                }
                if (obj.GetNodeTransForm() == null)
                {
                    return;
                }
                obj.GetNodeTransForm().localPosition = pos;
                obj.GetNodeTransForm().localRotation = Quaternion.identity;
                obj.GetNodeTransForm().localScale    = Vector3.one;
                //DoPlay(obj.GetNodeTransForm().gameObject, position, rotation, scale);
            });
        }
    }
Exemple #15
0
    void AddEffect(Vector3 pos)
    {
        uint             resID = 50054;
        ResourceDataBase resDB = GameTableManager.Instance.GetTableItem <ResourceDataBase>(resID);

        if (resDB == null)
        {
            Engine.Utility.Log.Error("EffectViewFactory:找不到特效资源路径配置{0}");
            return;
        }
        string path = resDB.strPath;

        Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
        if (rs == null)
        {
            return;
        }

        if (effect != null)
        {
            effect.Release();
        }
        rs.CreateEffect(ref path, ref effect, (obj) =>
        {
            if (obj == null)
            {
                return;
            }
            if (obj.GetNodeTransForm() == null)
            {
                return;
            }
            obj.GetNodeTransForm().localPosition = pos;
            obj.GetNodeTransForm().localRotation = Quaternion.identity;
            obj.GetNodeTransForm().localScale    = Vector3.one;

            //Engine.Utility.Log.Error("--->>特效坐标:" + mainPlayer.GetPos());
            //DoPlay(obj.GetNodeTransForm().gameObject, position, rotation, scale);
        });
    }
Exemple #16
0
        //-------------------------------------------------------------------------------------------------------

        /**
         * @brief 添加草扰动力
         * @param pos 力中心点位置
         * @param fForce 力大小
         * @param fRadius 力影响范围
         */
        public void AddGrassWaveForce(Vector3 pos, float fForce, float fRadius)
        {
            if (!m_bGrassForce)
            {
                return;
            }

            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return;
            }

            // 再计算移动速度
            Engine.IScene scene = rs.GetActiveScene();
            if (scene == null)
            {
                return;
            }

            scene.AddGrassWaveForce(pos, fForce, fRadius);
        }
Exemple #17
0
        public void Update(float dt)
        {
            if (m_ClientGlobal.MainPlayer == null)
            {
                return;
            }

            if (m_enterZoneEvent != null)
            {
                Client.IEntity mainPlayer = m_ClientGlobal.MainPlayer;
                if (mainPlayer != null)
                {
                    int zoneid = this.IsEnterZone(mainPlayer.GetPos());
                    if (zoneid != -1)
                    {
                        m_enterZoneEvent(zoneid);
                    }
                }
            }

            // 检测遮挡物
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return;
            }

            // 再计算移动速度
            Engine.IScene scene = rs.GetActiveScene();
            if (scene == null)
            {
                return;
            }

            scene.CheckOcclusion(m_ClientGlobal.MainPlayer.GetPos());
        }
Exemple #18
0
        public float GetTerrainHeight(Vector3 pos)
        {
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            if (rs == null)
            {
                return(0.0f);
            }

            // 再计算移动速度
            Engine.IScene curScene = rs.GetActiveScene();
            if (curScene == null)
            {
                return(0.0f);
            }


            Engine.TerrainInfo info;
            if (!curScene.GetTerrainInfo(ref pos, out info))
            {
                return(0.0f);
            }

            return(info.pos.y);
        }
Exemple #19
0
    void OnActionEvent(ref string strEventName, ref string strAnimationName, float time, object param)
    {
        if (strEventName == "addEffect_scene" && strAnimationName == Client.EntityAction.ShowLog)
        {
            uint nEffectID          = (uint)param;
            table.FxResDataBase edb = GameTableManager.Instance.GetTableItem <table.FxResDataBase>(nEffectID);
            if (edb != null)
            {
                table.ResourceDataBase resDB = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>(edb.resPath);
                if (resDB != null)
                {
                    string       strPath       = resDB.strPath;
                    string       strAttachNode = edb.attachNode;
                    List <float> rotate        = edb.rotate;
                    //m_Avater.RenderObj.AddLinkEffect(ref strPath, ref strAttachNode,
                    //    new Vector3(edb.offset[0], edb.offset[1], edb.offset[2]),
                    //    Quaternion.identity,
                    //    Vector3.one);
                    Engine.IRenderSystem renderSys = Engine.RareEngine.Instance().GetRenderSystem();
                    Engine.IEffect       effect    = null;

                    Vector3 vecRotate        = new Vector3(rotate[0], rotate[1], rotate[2]);
                    UnityEngine.Quaternion q = new Quaternion();
                    q.eulerAngles = vecRotate;
                    renderSys.CreateEffect(ref strPath, ref effect, null, Engine.TaskPriority.TaskPriority_Normal, true);
                    effect.GetNode().SetLocalRotate(q);

                    Vector3 pos = new Vector3(edb.offset[0], edb.offset[1], edb.offset[2]);
                    effect.GetNode().SetLocalPosition(pos);

                    m_CurShowEffect.Add(effect);
                }
            }
        }
        else if (strEventName == "addEffect_body" && strAnimationName == Client.EntityAction.ShowLog)
        {
            AssetBundle m_AssetBundle;



            uint nEffectID          = (uint)param;
            table.FxResDataBase edb = GameTableManager.Instance.GetTableItem <table.FxResDataBase>(nEffectID);
            if (edb != null)
            {
                table.ResourceDataBase resDB = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>(edb.resPath);
                if (resDB != null)
                {
                    string       strPath       = resDB.strPath;
                    string       strAttachNode = edb.attachNode;
                    List <float> rotate        = edb.rotate;

                    Vector3 vecRotate        = new Vector3(rotate[0], rotate[1], rotate[2]);
                    UnityEngine.Quaternion q = new Quaternion();
                    q.eulerAngles = vecRotate;

                    m_Avater.RenderObj.AddLinkEffect(ref strPath, ref strAttachNode,
                                                     new Vector3(edb.offset[0], edb.offset[1], edb.offset[2]),
                                                     q,
                                                     Vector3.one);
                }
            }
        }


        if (strEventName == "standAni" && strAnimationName == Client.EntityAction.ShowLog)
        {
            m_bLockRotate = false;
            m_Avater.PlayAni(Client.EntityAction.Show, null, 0.3f, -1);
        }

        if (strEventName == "Dissolve" && strAnimationName == Client.EntityAction.ShowLog)
        {
            RenderObjHelper.BeginDissolveEffect(m_Avater.RenderObj);
        }

        //if(strEventName=="end" && strAnimationName == Client.EntityAction.ShowLog)
        //{
        //    m_bLockRotate = false;
        //    if (null != m_cam_animator)
        //    {
        //        m_cam_animator.SetInteger(m_istateChangeParamHash, 0);
        //    }
        //m_Avater.PlayAni(Client.EntityAction.Show, null, 0.3f, -1);
        //}
    }
Exemple #20
0
    void OnSelChanged(enumProfession prof, enmCharSex sex, bool force = false)
    {
        if (m_curPro == prof && m_sel_sex == sex && force == false)
        {
            //没有改变
            return;
        }
        m_bLockRotate = true;
        bool havePre = m_curPro != enumProfession.Profession_None;

        GetGridByPro(prof).SetSelect(true, havePre);
        GetPropDesContent(prof).SetActive(true);
        if (havePre)
        {
            if (null != m_rightDesTA)
            {
                m_rightDesTA.ResetToBeginning();
                m_rightDesTA.Play(true);
            }
            GetGridByPro(m_curPro).SetSelect(false);
            GetPropDesContent(m_curPro).SetActive(false);
        }
        else
        {
            if (m_rightDesTA != null)
            {
                m_rightDesTA.GetComponent <UIWidget>().alpha = m_rightDesTA.to;
            }
        }
        m_prePro = m_curPro;
        m_curPro = prof;
        if (m_curPro == enumProfession.Profession_Soldier || m_curPro == enumProfession.Profession_Freeman)
        {
            sex = enmCharSex.MALE;
        }
        else
        {
            sex = enmCharSex.FEMALE;
        }
        m_sel_sex = sex;
        //for (int i = 0; i < m_lstCreateRoleBtn.Count; i++)
        //{
        //    m_lstCreateRoleBtn[i].ToggleSelectMask(m_lstCreateRoleBtn[i].m_enumProfession == m_sel_profession);
        //}

        if (m_char_obj != null)
        {
            GameObject.Destroy(m_char_obj);
        }

        //if(m_sel_sex == enmCharSex.MALE)
        //{
        //    m_sprite_male_bg.spriteName = "nan_liang";
        //    m_sprite_female_bg.spriteName = "nv_an";
        //}
        //else
        //{
        //    m_sprite_male_bg.spriteName = "nan_an";
        //    m_sprite_female_bg.spriteName = "nv_liang";
        //}


        //随机一个名字
        onClick_Random_name_Btn(null);

        //if(m_sel_sex == enmCharSex.MALE)
        //    StartCoroutine(LoadModel("ZS_Male_Show"));
        //else
        //    StartCoroutine(LoadModel("ZS_Female_Show"));

        var t = Table.Query <table.SelectRoleDataBase>();

        table.SelectRoleDataBase item = null;
        for (int i = 0; i < t.Count; i++)
        {
            if (t[i].professionID == (uint)m_curPro && t[i].Sex == m_sel_sex)
            {
                item = t[i];
                break;
            }
        }
        // var item = table.SelectRoleDataBase.Where(m_sel_profession, m_sel_sex);

        if (item == null || (item != null && string.IsNullOrEmpty(item.bodyPathRoleShowcase)))
        {
            Log.Error("角色展示模型未配置,请检查选人界面表!");
            return;
        }


        if (m_Avater != null)
        {
            RenderObjHelper.EndDissolveEffect(m_Avater.RenderObj);
        }
        if (m_Avater != null)
        {
            m_Avater.Destroy();
            m_Avater = null;
        }

        if (m_model_node == null)
        {
            Engine.Utility.Log.Error("m_model_node 为 null !!!");
            return;
        }

        m_model_node.transform.DestroyChildren();
        rotateY = m_model_node.localRotation.y;

        //var table_data = GameTableManager.Instance.GetTableItem<table.SuitDataBase>((uint)item.createRoleResID);


        //创建角色,模型自带武器
        var ritem = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>((uint)item.createRoleResID);

        if (ritem == null)
        {
            Engine.Utility.Log.Error("ritem 为 null !!!");
            return;
        }

        Client.AvatarUtil.CreateAvater(ref m_Avater, ritem.strPath, m_model_node, m_model_node.gameObject.layer, OnCreateAvater, (int)prof);

        Engine.IRenderSystem renderSys = Engine.RareEngine.Instance().GetRenderSystem();
        if (renderSys == null)
        {
            return;
        }

        for (int i = m_CurShowEffect.Count - 1; i >= 0; i--)
        {
            Engine.IEffect effect = m_CurShowEffect[i];
            renderSys.RemoveEffect(effect);
        }
        m_CurShowEffect.Clear();
    }
Exemple #21
0
        //-------------------------------------------------------------------------------------------------------

        /**
         * @brief 进入地图
         * @param nMapID 地图ID
         */
        public void EnterMap(uint nMapID, Vector3 pos)
        {
            // 读取地图配置表
            Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem();
            Engine.Utility.Log.Info("EnterMapStart");
            if (rs != null)
            {
                if (nMapID == mapID)
                {
                    return;
                }

                Engine.Utility.Log.Info("EnterMapStart mapID");
                // 停止背景音乐
                Engine.IAudio audio = Engine.RareEngine.Instance().GetAudio();
                if (audio != null)
                {
                    audio.StopMusic();
                }

                // 离开当前场景
                Process = 0f;
                Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.ENTITYSYSTEM_LEAVEMAP, mapID);
                //进入下一个地图
                Engine.Utility.Log.Info("EnterMapStart 离开当前场景");
                table.MapDataBase mapDB = GameTableManager.Instance.GetTableItem <table.MapDataBase>(nMapID);
                if (mapDB == null)
                {
                    Engine.Utility.Log.Error("MapSystem:找不到地图配置数据{0}", nMapID);
                    return;
                }
                Engine.Utility.Log.Info("EnterMapStart 离开当前场景 table.MapDataBase mapDB ");
                table.ResourceDataBase resDB = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>(mapDB.dwResPath);
                if (resDB == null)
                {
                    Engine.Utility.Log.Error("MapSystem:找不到地图资源路径配置{0}", mapDB.dwResPath);
                    return;
                }
                temptime = Time.realtimeSinceStartup;
                lastInfo = "none";
                // 创建寻路模块
                mapID = nMapID;
                // 预加载
                mapName = mapDB.strName;// string.Format("{0}({1})", mapDB.strName, uCountryid);

                // 不是中转空场景
                if (nMapID != GameTableManager.Instance.GetClientGlobalConst <int>("map", "emptyid"))
                {
                    Engine.Utility.Log.Info("EnterMapStart 读取地图配置表 ");
                    // 读取地图配置表
                    string strMapName = resDB.strPath.ToLower();
                    m_strMapTexturePath = strMapName.Replace(".map", "").Substring(strMapName.LastIndexOf('/') + 1);
                    Engine.IScene scene = rs.EnterScene(ref strMapName, this);
                    if (scene != null)
                    {
                        scene.StartLoad(pos);
                    }

                    Engine.Utility.Log.Info("EnterMapStart EnterScene name:{0} ", strMapName);
                    // 场景npc配置
                    LoadClientMap(mapDB.miniMapInfo.ToLower());

                    //LoadClienMapArea(strMapName.ToLower().Replace(".map", ".ar"));

                    //SpanUtil.Start();
                    //if (Application.platform == RuntimePlatform.WindowsEditor)
                    //{
                    Profiler.BeginSample("LoadARFile");
                    MapAreaDisplay.Instance.LoadARFile(strMapName.ToLower().Replace(".map", ".ar"));
                    Profiler.EndSample();
                    //}
                    //SpanUtil.Stop(strMapName + "  ar  ");

                    string strMPSName = strMapName.Replace(".map", ".mps").ToLower();
                    // 读取地表障碍信息
                    LoadObstacle(strMPSName);
                    //SpanUtil.Stop(strMapName + "  地表障碍信息  ");
                }
            }
            else
            {
                Engine.Utility.Log.Error("MapSystem:IRenderSystem为空");
            }
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)(int)Client.GameEventID.ENTITYSYSTEM_ENTERMAP, mapID);
        }