/// <summary> /// 创建游戏模块 /// </summary> private IEnumerator CreateGameModules() { // 创建事件管理器 MotionEngine.CreateModule <EventManager>(); // 创建补间管理器 MotionEngine.CreateModule <TweenManager>(); // 创建网络管理器 var networkCreateParam = new NetworkManager.CreateParameters(); networkCreateParam.PackageCoderType = typeof(ProtoPackageCoder); networkCreateParam.PackageMaxSize = ushort.MaxValue; MotionEngine.CreateModule <NetworkManager>(networkCreateParam); // 本地资源服务接口 LocalBundleServices bundleServices = new LocalBundleServices(); yield return(bundleServices.InitializeAsync(SimulationOnEditor)); // 创建资源管理器 var resourceCreateParam = new ResourceManager.CreateParameters(); resourceCreateParam.LocationRoot = GameDefine.AssetRootPath; resourceCreateParam.SimulationOnEditor = SimulationOnEditor; resourceCreateParam.BundleServices = bundleServices; resourceCreateParam.DecryptServices = null; resourceCreateParam.AutoReleaseInterval = 10f; MotionEngine.CreateModule <ResourceManager>(resourceCreateParam); // 创建配表管理器 MotionEngine.CreateModule <ConfigManager>(); // 创建音频管理器 MotionEngine.CreateModule <AudioManager>(); // 创建场景管理器 MotionEngine.CreateModule <SceneManager>(); // 创建窗口管理器 MotionEngine.CreateModule <WindowManager>(); // 创建ILR管理器 ILRManager.CreateParameters createParameters = new ILRManager.CreateParameters(); createParameters.IsEnableILRuntime = EnableILRuntime; createParameters.SimulationOnEditor = SimulationOnEditor; MotionEngine.CreateModule <ILRManager>(createParameters); // 反射服务服务接口 ConfigManager.Instance.ActivatorServices = ILRManager.Instance; WindowManager.Instance.ActivatorServices = ILRManager.Instance; // 开始游戏 ILRManager.Instance.StartGame(); }
/// <summary> /// 创建游戏模块 /// </summary> private IEnumerator CreateGameModules() { // 创建事件管理器 MotionEngine.CreateModule <EventManager>(); // 创建补间管理器 MotionEngine.CreateModule <TweenManager>(); // 本地资源服务接口 LocalBundleServices bundleServices = new LocalBundleServices(); yield return(bundleServices.InitializeAsync(SimulationOnEditor)); // 创建资源管理器 var resourceCreateParam = new ResourceManager.CreateParameters(); resourceCreateParam.LocationRoot = GameDefine.AssetRootPath; resourceCreateParam.SimulationOnEditor = SimulationOnEditor; resourceCreateParam.BundleServices = bundleServices; resourceCreateParam.DecryptServices = null; resourceCreateParam.AutoReleaseInterval = 1f; MotionEngine.CreateModule <ResourceManager>(resourceCreateParam); // 创建音频管理器 MotionEngine.CreateModule <AudioManager>(); // 创建场景管理器 MotionEngine.CreateModule <SceneManager>(); // 创建对象池管理器 MotionEngine.CreateModule <GameObjectPoolManager>(); // 最后创建游戏业务逻辑模块 MotionEngine.CreateModule <DataManager>(); MotionEngine.CreateModule <WindowManager>(); MotionEngine.CreateModule <FsmManager>(); // 开始游戏逻辑 FsmManager.Instance.StartGame(); }
private IEnumerator CreateGameModules() { // 创建事件管理器 MotionEngine.CreateModule <EventManager>(); // 创建网络管理器 var networkCreateParam = new NetworkManager.CreateParameters(); networkCreateParam.PackageCoderType = typeof(ProtoPackageCoder); MotionEngine.CreateModule <NetworkManager>(networkCreateParam); // 本地资源服务接口 LocalBundleServices bundleServices = new LocalBundleServices(); yield return(bundleServices.InitializeAsync(SimulationOnEditor)); // 创建资源管理器 var resourceCreateParam = new ResourceManager.CreateParameters(); resourceCreateParam.LocationRoot = GameDefine.AssetRootPath; resourceCreateParam.SimulationOnEditor = SimulationOnEditor; resourceCreateParam.BundleServices = bundleServices; resourceCreateParam.DecryptServices = null; resourceCreateParam.AutoReleaseInterval = 10f; MotionEngine.CreateModule <ResourceManager>(resourceCreateParam); // 创建音频管理器 MotionEngine.CreateModule <AudioManager>(); // 创建场景管理器 MotionEngine.CreateModule <SceneManager>(); // 直接进入游戏 var luaCreateParam = new LuaManager.CreateParameters(); luaCreateParam.SimulationOnEditor = SimulationOnEditor; MotionEngine.CreateModule <LuaManager>(luaCreateParam); LuaManager.Instance.StartGame(); }
/// <summary> /// 创建游戏模块 /// </summary> private IEnumerator CreateGameModules() { // 创建事件管理器 MotionEngine.CreateModule <EventManager>(); // 创建变体规则集合 var variantRules = new List <VariantRule>(); { var rule1 = new VariantRule(); rule1.VariantGroup = new List <string>() { "EN", "KR" }; rule1.TargetVariant = Language == ELanguage.Default ? VariantRule.DefaultTag : Language.ToString(); variantRules.Add(rule1); var rule2 = new VariantRule(); rule2.VariantGroup = new List <string>() { "HD" }; rule2.TargetVariant = Quality == EQuality.Default ? VariantRule.DefaultTag : Quality.ToString(); variantRules.Add(rule2); } // 资源服务接口 IBundleServices bundleServices = null; if (SkipCDN) { var localBundleServices = new LocalBundleServices(variantRules); yield return(localBundleServices.InitializeAsync(SimulationOnEditor)); bundleServices = localBundleServices; } else { string myWebServer = "127.0.0.1"; string myCDNServer = "127.0.0.1"; var patchCreateParam = new PatchManager.CreateParameters(); patchCreateParam.ServerID = PlayerPrefs.GetInt("SERVER_ID_KEY", 0); patchCreateParam.ChannelID = 0; patchCreateParam.DeviceID = 0; patchCreateParam.TestFlag = PlayerPrefs.GetInt("TEST_FLAG_KEY", 0); patchCreateParam.CheckLevel = ECheckLevel.CheckSize; patchCreateParam.WebServers = new Dictionary <RuntimePlatform, string>(); patchCreateParam.WebServers.Add(RuntimePlatform.Android, $"{myWebServer}/WEB/Android/GameVersion.php"); patchCreateParam.WebServers.Add(RuntimePlatform.IPhonePlayer, $"{myWebServer}/WEB/Iphone/GameVersion.php"); patchCreateParam.CDNServers = new Dictionary <RuntimePlatform, string>(); patchCreateParam.CDNServers.Add(RuntimePlatform.Android, $"{myCDNServer}/CDN/Android"); patchCreateParam.CDNServers.Add(RuntimePlatform.IPhonePlayer, $"{myCDNServer}/CDN/Iphone"); patchCreateParam.DefaultWebServerIP = $"{myWebServer}/WEB/PC/GameVersion.php"; patchCreateParam.DefaultCDNServerIP = $"{myCDNServer}/CDN/PC"; patchCreateParam.VariantRules = variantRules; PatchManager patchManager = MotionEngine.CreateModule <PatchManager>(patchCreateParam); yield return(patchManager.InitializeAync()); bundleServices = MotionEngine.GetModule <PatchManager>(); EventManager.Instance.AddListener <PatchEventMessageDefine.PatchStatesChange>(OnHandleEventMessage); EventManager.Instance.AddListener <PatchEventMessageDefine.OperationEvent>(OnHandleEventMessage); } // 创建资源管理器 var resourceCreateParam = new ResourceManager.CreateParameters(); resourceCreateParam.LocationRoot = GameDefine.AssetRootPath; resourceCreateParam.SimulationOnEditor = SimulationOnEditor; resourceCreateParam.BundleServices = bundleServices; resourceCreateParam.DecryptServices = null; resourceCreateParam.AutoReleaseInterval = 10f; MotionEngine.CreateModule <ResourceManager>(resourceCreateParam); if (SkipCDN) { // 开始游戏 StartGame(); } else { // 初始化补丁窗口 yield return(PatchWindow.Instance.InitializeAsync()); WaitForSeconds waiting = new WaitForSeconds(1f); yield return(waiting); // 开始补丁更新流程 PatchManager.Instance.Download(); } }