Ejemplo n.º 1
0
        void RebuildAvailableTools()
        {
            ComponentToolCache activeComponentTool = new ComponentToolCache(m_ActiveToolContext, activeTool);

            ClearCustomEditorTools();

            EditorToolUtility.InstantiateComponentTools(activeToolContext, m_ComponentTools);

            if (activeComponentTool.toolType != null)
            {
                var restoredTool = m_ComponentTools.Find(x => x.editorType == activeComponentTool.toolType);

                if (restoredTool != null)
                {
                    activeTool = restoredTool.GetEditor <EditorTool>();
                }
                else
                {
                    m_PreviousComponentToolCache = activeComponentTool;
                    RestorePreviousPersistentTool();
                }
            }

            availableComponentToolsChanged?.Invoke();
        }
Ejemplo n.º 2
0
        void RestoreCustomEditorTool()
        {
            var restored = m_ComponentTools.FirstOrDefault(m_PreviousComponentToolCache.IsEqual);

            if (restored != null)
            {
                // todo Use generated Context
                if (m_PreviousComponentToolCache.contextType != null)
                {
                    activeToolContext = GetComponentContext(m_PreviousComponentToolCache.contextType);
                }

                activeTool = restored.GetEditor <EditorTool>();
            }

            m_PreviousComponentToolCache = ComponentToolCache.Empty;
        }
Ejemplo n.º 3
0
 void SaveComponentTool()
 {
     m_PreviousComponentToolCache = new ComponentToolCache(m_ActiveToolContext, m_ActiveTool);
 }