mirror of
				https://github.com/DerTyp7/defrain-shooter-unity.git
				synced 2025-11-04 15:18:59 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#if !UNITY_2020_3_OR_NEWER
 | 
						|
// make sure we weaved successfully when entering play mode.
 | 
						|
using UnityEditor;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
namespace Mirror
 | 
						|
{
 | 
						|
    public class EnterPlayModeSettingsCheck : MonoBehaviour
 | 
						|
    {
 | 
						|
        [InitializeOnLoadMethod]
 | 
						|
        static void OnInitializeOnLoad()
 | 
						|
        {
 | 
						|
            // Hook this event to see if we have a good weave every time
 | 
						|
            // user attempts to enter play mode or tries to do a build
 | 
						|
            EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
 | 
						|
        }
 | 
						|
 | 
						|
        static void OnPlayModeStateChanged(PlayModeStateChange state)
 | 
						|
        {
 | 
						|
            // Per Unity docs, this fires "when exiting edit mode before the Editor is in play mode".
 | 
						|
            // This doesn't fire when closing the editor.
 | 
						|
            if (state == PlayModeStateChange.ExitingEditMode)
 | 
						|
            {
 | 
						|
                // Check if last weave result was successful
 | 
						|
                if (!SessionState.GetBool("MIRROR_WEAVE_SUCCESS", false))
 | 
						|
                {
 | 
						|
                    // Last weave result was a failure...try to weave again
 | 
						|
                    // Faults will show in the console that may have been cleared by "Clear on Play"
 | 
						|
                    SessionState.SetBool("MIRROR_WEAVE_SUCCESS", true);
 | 
						|
                    Weaver.CompilationFinishedHook.WeaveExistingAssemblies();
 | 
						|
 | 
						|
                    // Did that clear things up for us?
 | 
						|
                    if (!SessionState.GetBool("MIRROR_WEAVE_SUCCESS", false))
 | 
						|
                    {
 | 
						|
                        // Nope, still failed, and console has the issues logged
 | 
						|
                        Debug.LogError("Can't enter play mode until weaver issues are resolved.");
 | 
						|
                        EditorApplication.isPlaying = false;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
#endif
 |