예제 #1
0
 private static void PlaymodeStateChanged()
 {
     if (EditorApplication.isPlayingOrWillChangePlaymode)
     {
         IsolateInfo.Show();
     }
     else
     {
         IsolateInfo.Hide();
     }
 }
예제 #2
0
 private static void PlaymodeStateChanged(PlayModeStateChange change)
 {
     if (change == PlayModeStateChange.EnteredPlayMode)
     {
         IsolateInfo.Show();
     }
     else
     {
         IsolateInfo.Hide();
     }
 }
예제 #3
0
        private static void EndIsolation()
        {
            if (!IsolateInfo.Instance)
            {
                return;
            }

            if (IsolateInfo.Instance.HiddenObjects != null)
            {
                Undo.RecordObjects(IsolateInfo.Instance.HiddenObjects.Cast <Object>().ToArray(), "DeIsolate");
                IsolateInfo.Show();
            }

            Undo.DestroyObjectImmediate(IsolateInfo.Instance.gameObject);
        }
예제 #4
0
        private static void UpdateIsolation(List <GameObject> newItems)
        {
            if (!newItems.Any())
            {
                return;
            }
            Undo.RecordObject(IsolateInfo.Instance, "Isolate");
            Undo.RecordObjects(IsolateInfo.Instance.HiddenObjects.Cast <Object>().ToArray(), "Isolate");
            IsolateInfo.Show();
            IsolateInfo.Instance.FocusObjects = IsolateInfo.Instance.FocusObjects.Concat(newItems).Distinct().ToList();
            var newHiddenObjects = GetAllGameObjectsToHide();

            Undo.RecordObjects(newHiddenObjects.Except(IsolateInfo.Instance.HiddenObjects).Cast <Object>().ToArray(), "Isolate");
            IsolateInfo.Instance.HiddenObjects = newHiddenObjects;
            IsolateInfo.Hide();
        }