// 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);
        }
    }
Esempio n. 2
0
 public static void SetSelectionMode(DependencyObject element, ESelectionMode value)
 {
     element.SetValue(SelectionModeProperty, value);
 }
Esempio n. 3
0
 public static void SetSelectionMode(DependencyObject element, ESelectionMode value)
 {
     element.SetValue(SelectionModeProperty, value);
 }