// Update selection private bool UpdateSelection() { // Save the current selection ESelectionMode eSelectionModeLast = m_eSelectionMode; GameObject rSelectedGameObjectLast = m_rSelectedGameObject; HierarchicalPrefabInstance rSelectedHierarchicalPrefabInstanceLast = m_rSelectedHierarchicalPrefabInstance; // Update the selected game object m_rSelectedGameObject = Selection.activeGameObject; // Update the selection mode if (Application.isPlaying) { m_eSelectionMode = ESelectionMode.InPlayMode; m_rSelectedGameObject = null; } else if (m_rSelectedGameObject == null) { m_eSelectionMode = ESelectionMode.None; } else if (EditorUtility.IsPersistent(m_rSelectedGameObject)) { m_rSelectedHierarchicalPrefabInstance = m_rSelectedGameObject.GetComponent <HierarchicalPrefabInstance>(); if (m_rSelectedHierarchicalPrefabInstance == null) { m_eSelectionMode = ESelectionMode.IsAResourceButNotAHierarchicalPrefab; } else { m_eSelectionMode = ESelectionMode.IsAHierarchicalPrefabResource; } } else { m_rSelectedHierarchicalPrefabInstance = m_rSelectedGameObject.GetComponent <HierarchicalPrefabInstance>(); if (m_rSelectedHierarchicalPrefabInstance == null) { m_eSelectionMode = ESelectionMode.IsNotAHierarchicalPrefabInstance; } else { if (m_rSelectedHierarchicalPrefabInstance.HierarchicalPrefab == null) { m_eSelectionMode = ESelectionMode.IsAHierarchicalInstancePrefabWithoutResource; } else { m_eSelectionMode = ESelectionMode.IsAConnectedHierarchicalInstancePrefab; } } } bool bMustCompileLast = m_bMustCompile; m_bMustCompile = NestedPrefabEditorSettings.MustCompile; // Check if there was change if (eSelectionModeLast != m_eSelectionMode || rSelectedGameObjectLast != m_rSelectedGameObject || rSelectedHierarchicalPrefabInstanceLast != m_rSelectedHierarchicalPrefabInstance || bMustCompileLast != m_bMustCompile) { return(true); } else { return(false); } }
public static void SetSelectionMode(DependencyObject element, ESelectionMode value) { element.SetValue(SelectionModeProperty, value); }