//游戏逻辑初始化 public static IEnumerator InitLogic() { // Debug.logger.logEnabled = false; Application.targetFrameRate = 30;//限定帧率 m_logicInitProgress = 0.3f; yield return(null); { bool sc_main_loadComplate = false; //增量装载场景公共资源 LoadSceneMode.Additive 加载场景的时候不关闭上一个场景 SceneManage.Single.Load( "sc_main", null, LoadSceneMode.Additive, () => sc_main_loadComplate = true,//装载完成通知 null ); //等待主场景装载完成 while (!sc_main_loadComplate) { yield return(null); } m_logicInitProgress = 0.35f; yield return(null); m_logicInitProgress = 0.4f; yield return(null); } //实例化服务器虚机 QKNodeSDK_CLR.Node.AutoInstance(); DataManager.AutoInstance(); DisplayerManager.AutoInstance(); m_logicInitProgress = 0.58f; yield return(null); SData_mapdata.AutoInstance(); m_logicInitProgress = 0.9f; yield return(null); AI_Single.AutoInstance(); //设置场景滚动限制参数 { var scrollAreaLimiterObj = GameObject.Find("/ScrollAreaLimiter"); var scrollAreaLimiter = scrollAreaLimiterObj.GetComponent <ScrollAreaLimiter>(); var mapData = SData_mapdata.Single.GetDataOfID(1); var xmin = mapData.FreeCameraXmin; var xmax = mapData.FreeCameraXmax; var zmin = mapData.FreeCameraZmin; var zmax = mapData.FreeCameraZmax; var halfBoxw = (xmax - xmin) / 2; var halfBoxh = (zmax - zmin) / 2; var centerX = xmin + halfBoxw; var centerZ = zmin + halfBoxh; scrollAreaLimiter.Area.center = new Vector3(centerX, 300, centerZ); scrollAreaLimiter.Area.extents = new Vector3(halfBoxw, 1000, halfBoxh); scrollAreaLimiter.SoftArea.center = new Vector3(centerX, 300, centerZ); scrollAreaLimiter.SoftArea.extents = new Vector3( halfBoxw + 5 * DiamondGridMap.wxs * mapData.terrain_cell_bianchang, 4000, halfBoxh + 5 * DiamondGridMap.VerticalSpacingFactor ); } //实例化相机追随物管理器 DP_CameraTrackObjectManage.AutoInstance(); m_logicInitProgress = 1.0f; yield return(null); }
/// <summary> /// 根据从lua传来的head和body表构建c#中的字典,两处数据永远一致 /// <param name="index">构建的序号</param> /// <param name="table1">head表</param> /// <param name="table2">body表</param> /// </summary> public static void setData(string index, LuaTable table1, LuaTable table2) { switch (index) { case "mapData": { SData_mapdata.AutoInstance(); SData_mapdata.Single.setData(table1, table2); } break; case "constant": { SData_Constant.AutoInstance(); SData_Constant.Single.setData(table1, table2); } break; case "armyaim_c": { SData_armyaim_c.AutoInstance(); SData_armyaim_c.Single.setData(table1, table2); } break; case "armyaoe_c": { SData_armyaoe_c.AutoInstance(); SData_armyaoe_c.Single.setData(table1, table2); } break; case "effect_c": { SData_effect_c.AutoInstance(); SData_effect_c.Single.setData(table1, table2); } break; case "unitfight_c": { SData_UnitFightData_c.AutoInstance(); SData_UnitFightData_c.Single.setData(table1, table2); } break; case "armybase_c": { SData_armybase_c.AutoInstance(); SData_armybase_c.Single.setData(table1, table2); } break; case "armycardbase_c": { SData_armycardbase_c.AutoInstance(); SData_armycardbase_c.Single.setData(table1, table2); } break; case "array_c": { SData_array_c.AutoInstance(); SData_array_c.Single.setData(table1, table2); } break; case "soldierRender": { SData_soldierRender_data.AutoInstance(); SData_soldierRender_data.Single.setData(table1, table2); } break; case "kezhi_c": { SData_kezhi_c.AutoInstance(); SData_kezhi_c.Single.setData(table1, table2); } break; } }