Example #1
0
        void OnActiveToolChanged()
        {
            m_ToolIsActive = ToolManager.IsActiveTool(this);
            if (m_CompareDataModule != null)
            {
                if (m_ToolIsActive)
                {
                    m_CompareDataModule.StartComparing();
                    m_CompareDataModule.CompareDataChanged += UpdateOverlayUI;
                }
                else
                {
                    m_CompareDataModule.StopComparing();
                    m_CompareDataModule.CompareDataChanged -= UpdateOverlayUI;
                }

                if (m_SceneViewInteractionModule != null)
                {
                    m_SceneViewInteractionModule.RequestInteraction(this, m_ToolIsActive);
                    if (m_ToolIsActive)
                    {
                        m_SceneViewInteractionModule.SelectionLimit    = 1;
                        m_SceneViewInteractionModule.HoverBegin       += OnHoverBegin;
                        m_SceneViewInteractionModule.HoverEnd         += OnHoverEnd;
                        m_SceneViewInteractionModule.SelectionChanged += OnDataSelectionChanged;
                    }
                    else
                    {
                        m_SceneViewInteractionModule.HoverBegin       -= OnHoverBegin;
                        m_SceneViewInteractionModule.HoverEnd         -= OnHoverEnd;
                        m_SceneViewInteractionModule.SelectionChanged -= OnDataSelectionChanged;
                    }
                }
            }

            if (m_ToolIsActive)
            {
                // Open simulation view if needed
                if (!SimulationSceneModule.UsingSimulation)
                {
                    EditorWindow.GetWindow <SceneView>(); // Need to make sure there is a scene view otherwise the simulation view will close immediately
                    EditorWindow.GetWindow <SimulationView>();
                }

                SimulationView.ActiveSimulationView.Focus();
            }

            UpdateOverlayUI();
            OnSelectionChanged();
        }
        void OnActiveToolChanged()
        {
#if UNITY_2020_2_OR_NEWER
            m_ToolIsActive = ToolManager.IsActiveTool(this);
#else
            m_ToolIsActive = EditorTools.EditorTools.IsActiveTool(this);
#endif

            if (m_DataVisualsModule != null)
            {
                m_DataVisualsModule.RequestDataVisuals(this, m_ToolIsActive);
            }

            if (m_ScenePlacementModule != null)
            {
                if (m_ToolIsActive)
                {
                    m_ScenePlacementModule.ObjectDropped += OnObjectDropped;
                }
                else
                {
                    m_ScenePlacementModule.ObjectDropped -= OnObjectDropped;
                }
            }

            if (m_InteractionModule != null)
            {
                m_InteractionModule.RequestInteraction(this, m_ToolIsActive);
                if (m_ToolIsActive)
                {
                    m_InteractionModule.SelectionLimit = 2;
                }
            }

            UpdateInfoOverlayUI();
            UpdateCreateUI();
        }