public virtual void OnEnable() { // Tags. m_Tags = serializedObject.FindProperty("tags"); if (m_TagsList == null) { m_TagsList = new ReorderableList(serializedObject, m_Tags, false, false, true, true); m_TagsList.onAddDropdownCallback = NewElement; m_TagsList.onRemoveCallback = RemoveFromTagsList; m_TagsList.drawElementCallback = DrawTagListElement; m_TagsList.elementHeight = EditorGUIUtility.singleLineHeight + 2; m_TagsList.headerHeight = 3; } // Sorting layers. m_SortingLayers = serializedObject.FindProperty("m_SortingLayers"); if (m_SortLayersList == null) { m_SortLayersList = new ReorderableList(serializedObject, m_SortingLayers, true, false, true, true); m_SortLayersList.onReorderCallback = ReorderSortLayerList; m_SortLayersList.onAddCallback = AddToSortLayerList; m_SortLayersList.onRemoveCallback = RemoveFromSortLayerList; m_SortLayersList.onCanRemoveCallback = CanRemoveSortLayerEntry; m_SortLayersList.drawElementCallback = DrawSortLayerListElement; m_SortLayersList.elementHeight = EditorGUIUtility.singleLineHeight + 2; m_SortLayersList.headerHeight = 3; } // Layers. m_Layers = serializedObject.FindProperty("layers"); System.Diagnostics.Debug.Assert(m_Layers.arraySize == 32); if (m_LayersList == null) { m_LayersList = new ReorderableList(serializedObject, m_Layers, false, false, false, false); m_LayersList.drawElementCallback = DrawLayerListElement; m_LayersList.elementHeight = EditorGUIUtility.singleLineHeight + 2; m_LayersList.headerHeight = 3; } if (s_InitialExpansionState != InitialExpansionState.None) { m_Tags.isExpanded = false; m_SortingLayers.isExpanded = false; m_Layers.isExpanded = false; switch (s_InitialExpansionState) { case InitialExpansionState.Tags: m_Tags.isExpanded = true; break; case InitialExpansionState.Layers: m_Layers.isExpanded = true; break; case InitialExpansionState.SortingLayers: m_SortingLayers.isExpanded = true; break; } s_InitialExpansionState = InitialExpansionState.None; } }
internal static void ShowWithInitialExpansion(InitialExpansionState initialExpansionState) { s_InitialExpansionState = initialExpansionState; Selection.activeObject = EditorApplication.tagManager; }