void Update()
 {
     if (SelectionGroupManager.instance == null)
     {
         SelectionGroupManager.CreateAndLoad();
         Repaint();
     }
 }
Example #2
0
        internal static void CreateAndLoad()
        {
            System.Diagnostics.Debug.Assert(s_Instance == null);
            //Find existing
            var managers = Resources.FindObjectsOfTypeAll(typeof(SelectionGroupManager));

            if (managers.Length > 0)
            {
                s_Instance = managers[0] as SelectionGroupManager;
                if (managers.Length != 1)
                {
                    Debug.LogError($"Multiple SelectionGroupManager instances detected! {managers.Length}");
                }
            }

            if (s_Instance == null)
            {
                // Load
                string filePath = GetFilePath();
                if (!string.IsNullOrEmpty(filePath))
                {
                    // If a file exists the
                    var objects = InternalEditorUtility.LoadSerializedFileAndForget(filePath);
                    if (objects.Length > 0 && objects[0] is SelectionGroupManager)
                    {
                        s_Instance = (SelectionGroupManager)objects[0];
                    }
                }
            }

            if (s_Instance == null)
            {
                // Create
                var t = CreateInstance <SelectionGroupManager>();
                // t.hideFlags = HideFlags.HideAndDontSave;
                s_Instance = t;
            }
            System.Diagnostics.Debug.Assert(s_Instance != null);
        }