using UnityEngine.SceneManagement; // ReSharper disable CheckNamespace namespace IPA { /// /// Interface for Beat Saber plugins. Every class that implements this will be loaded if the DLL is placed at /// data/Managed/Plugins. /// public interface IBeatSaberPlugin { /// /// Gets invoked when the application is started. /// /// THIS EVENT WILL NOT BE GUARANTEED TO FIRE. USE Init OR INSTEAD. /// void OnApplicationStart(); /// /// Gets invoked when the application is closed. /// void OnApplicationQuit(); /// /// Gets invoked on every graphic update. /// void OnUpdate(); /// /// Gets invoked on ever physics update. /// void OnFixedUpdate(); /// /// Gets invoked whenever a scene is loaded. /// /// The scene currently loaded /// The type of loading void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode); /// /// Gets invoked whenever a scene is unloaded /// /// The unloaded scene void OnSceneUnloaded(Scene scene); /// /// Gets invoked whenever a scene is changed /// /// The Scene that was previously loaded /// The Scene being loaded void OnActiveSceneChanged(Scene prevScene, Scene nextScene); } }