예제 #1
0
        internal void Awake()
        {
            DontDestroyOnLoad(gameObject);

            if (!initialized)
            {
                UnityGame.SetMainThread();
                UnityGame.EnsureRuntimeGameVersion();

                PluginManager.Load();

                bsPlugins = new CompositeBSPlugin(PluginManager.BSMetas);
#pragma warning disable 618
                ipaPlugins = new CompositeIPAPlugin(PluginManager.Plugins);
#pragma warning restore 618

#if BeatSaber // TODO: remove this
                gameObject.AddComponent <Updating.BeatMods.Updater>();
#endif

                bsPlugins.OnEnable();
                ipaPlugins.OnApplicationStart();

                SceneManager.activeSceneChanged += OnActiveSceneChanged;
                SceneManager.sceneLoaded        += OnSceneLoaded;
                SceneManager.sceneUnloaded      += OnSceneUnloaded;

                var unitySched = UnityMainThreadTaskScheduler.Default as UnityMainThreadTaskScheduler;
                if (!unitySched.IsRunning)
                {
                    StartCoroutine(unitySched.Coroutine());
                }

                initialized = true;

#if DEBUG
                Config.Stores.GeneratedStoreImpl.DebugSaveAssembly("GeneratedAssembly.dll");
#endif
            }
        }
예제 #2
0
        void Awake()
        {
            DontDestroyOnLoad(gameObject);

            PluginManager.Load();

            bsPlugins = new CompositeBSPlugin(PluginManager.BSMetas);
#pragma warning disable 618
            ipaPlugins = new CompositeIPAPlugin(PluginManager.Plugins);
#pragma warning restore 618

            gameObject.AddComponent <Updating.BeatMods.Updater>();

            bsPlugins.OnApplicationStart();
            ipaPlugins.OnApplicationStart();

            SceneManager.activeSceneChanged += OnActiveSceneChanged;
            SceneManager.sceneLoaded        += OnSceneLoaded;
            SceneManager.sceneUnloaded      += OnSceneUnloaded;

            Config.Config.Save();
        }