Ejemplo n.º 1
0
        public static void Start()
        {
#if ILRuntime
            if (!Define.IsILRuntime)
            {
                Log.Error("mono层是mono模式, 但是Hotfix层是ILRuntime模式");
            }
#else
            if (Define.IsILRuntime)
            {
                Log.Error("mono层是ILRuntime模式, Hotfix层是mono模式");
            }
#endif

            try
            {
                // 注册热更层回调
                ETModel.Game.Hotfix.Update                  = () => { Update(); };
                ETModel.Game.Hotfix.LateUpdate              = () => { LateUpdate(); };
                ETModel.Game.Hotfix.OnApplicationQuit       = () => { OnApplicationQuit(); };
                ETModel.Game.Hotfix.OnApplicationPauseTrue  = () => { OnApplicationPauseTrue(); };
                ETModel.Game.Hotfix.OnApplicationPauseFalse = () => { OnApplicationPauseFalse(); };
                ETModel.Game.Hotfix.OnApplicationFocusTrue  = () => { OnApplicationFocusTrue(); };
                ETModel.Game.Hotfix.OnApplicationFocusFalse = () => { OnApplicationFocusFalse(); };
                ETModel.Game.Hotfix.OnGetHeadImagePath      = (imagePath) => { };
                ETModel.Game.Hotfix.OnGetGPS                = (gpsInfo) => { OnGetGPS(gpsInfo); };
                ETModel.Game.Hotfix.OnAwakeByURL            = (gpsInfo) => { OnAwakeByURL(gpsInfo); };

                Game.Scene.AddComponent <UIComponent>();
                Game.Scene.AddComponent <OpcodeTypeComponent>();
                Game.Scene.AddComponent <MessageDispatcherComponent>();
                Game.Scene.AddComponent <SoundComponent>();
                Game.Scene.AddComponent <HttpRequestComponent>();

                //添加sdk
                //Game.Scene.AddComponent<BuglySdkComponent>();
                //Game.Scene.AddComponent<TalkingDataSdkComponent>();
                //Game.Scene.AddComponent<JPushSdkComponent>();
                //Game.Scene.AddComponent<IMSdkComponent>();
                //Game.Scene.AddComponent<KeFuSdkComponent>();


                // 加载热更配置
                ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundle("config.unity3d");
                Game.Scene.AddComponent <ConfigComponent>();
                ETModel.Game.Scene.GetComponent <ResourcesComponent>().UnloadBundle("config.unity3d");

                Game.Scene.AddComponent <DBAreaComponent>();

                Game.Scene.AddComponent <SensitiveWordComponent>();

                Game.EventSystem.Run(EventIdType.InitSceneStart);

                Game.Scene.AddComponent <NetworkDetectionComponent>();

                if (!Application.isEditor)
                {
                    NativeManager.GetDeviceSafeArea();
                    NativeManager.IntAwakeByURLObserver();
                }

                ObtainConfigMsg();
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }