diff --git a/Boids/Assets/DisableScriptReload.cs b/Boids/Assets/DisableScriptReload.cs new file mode 100644 index 0000000..35b0b4b --- /dev/null +++ b/Boids/Assets/DisableScriptReload.cs @@ -0,0 +1,37 @@ + using UnityEditor; + using UnityEngine; + + /// + /// Prevents script compilation and reload while in play mode. + /// The editor will show a the spinning reload icon if there are unapplied changes but will not actually + /// apply them until playmode is exited. + /// Note: Script compile errors will not be shown while in play mode. + /// Derived from the instructions here: + /// https://support.unity3d.com/hc/en-us/articles/210452343-How-to-stop-automatic-assembly-compilation-from-script + /// + [InitializeOnLoad] + public class DisableScriptReload + { + static DisableScriptReload() + { + EditorApplication.playModeStateChanged + += OnPlayModeStateChanged; + } + + static void OnPlayModeStateChanged(PlayModeStateChange stateChange) + { + switch (stateChange) { + case (PlayModeStateChange.EnteredPlayMode): { + EditorApplication.LockReloadAssemblies(); + Debug.Log ("Assembly Reload locked as entering play mode"); + break; + } + case (PlayModeStateChange.ExitingPlayMode): { + Debug.Log ("Assembly Reload unlocked as exiting play mode"); + EditorApplication.UnlockReloadAssemblies(); + break; + } + } + } + + } \ No newline at end of file diff --git a/Boids/Assets/DisableScriptReload.cs.meta b/Boids/Assets/DisableScriptReload.cs.meta new file mode 100644 index 0000000..b9ed448 --- /dev/null +++ b/Boids/Assets/DisableScriptReload.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6a46ee76c3b4473f9aff1b62cf8674dc +timeCreated: 1589846269 \ No newline at end of file