Ejemplo n.º 1
0
        /// <summary>
        /// Method called when another scenario element has been selected
        /// </summary>
        /// <param name="selectedElement">Scenario element that has been selected</param>
        private void OnSelectedOtherElement(ScenarioElement selectedElement)
        {
            //Detach from current agent events
            if (selectedAgent != null)
            {
                //Hide destination point if agent is deselected and something else is selected
                if (destinationPointExtension != null && selectedElement != destinationPointExtension.DestinationPoint)
                {
                    destinationPointExtension.DestinationPoint.SetVisibility(false);
                }
            }

            selectedAgent = selectedElement as ScenarioAgent;
            //Attach to selected agent events
            if (selectedAgent != null)
            {
                destinationPointExtension = selectedAgent.GetExtension <AgentDestinationPoint>();
                if (destinationPointExtension == null)
                {
                    Hide();
                }
                else
                {
                    Show();
                }
            }
            else
            {
                Hide();
            }
        }
        /// <summary>
        /// Method called when another scenario element has been selected
        /// </summary>
        /// <param name="previousElement">Scenario element that has been deselected</param>
        /// <param name="selectedElement">Scenario element that has been selected</param>
        private void OnSelectedOtherElement(ScenarioElement previousElement, ScenarioElement selectedElement)
        {
            //Detach from current agent events
            if (destinationPointExtension != null && selectedAgent == previousElement)
            {
                //Hide destination point if something else than the destination point is selected
                if (!(selectedElement is ScenarioDestinationPoint ||
                      selectedElement is ScenarioDestinationPointWaypoint) &&
                    destinationPointExtension.DestinationPoint != null)
                {
                    destinationPointExtension.DestinationPoint.SetVisibility(false);
                }
                destinationPointExtension = null;
            }

            selectedAgent = selectedElement as ScenarioAgent;
            //Attach to selected agent events
            if (selectedAgent != null)
            {
                destinationPointExtension = selectedAgent.GetExtension <AgentDestinationPoint>();
                if (destinationPointExtension == null)
                {
                    Hide();
                }
                else
                {
                    Show();
                }
            }
            else
            {
                Hide();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Sets destination point as active or inactive if it is supported by selected agent
        /// </summary>
        /// <param name="extension">Changed destination point extension</param>
        /// <param name="active">Should the destination point be active</param>
        private void SetDestinationPoint(AgentDestinationPoint extension, bool active)
        {
            extension.DestinationPoint.SetActive(active);
            var isSelected = extension == destinationPointExtension;

            extension.DestinationPoint.SetVisibility(isSelected && active);
            if (isSelected)
            {
                destinationPointToggle.SetIsOnWithoutNotify(active);
            }
            activeDestinationPointPanel.SetActive(isSelected && active);
        }
        /// <summary>
        /// Sets playback path visibility
        /// </summary>
        /// <param name="extension">Changed destination point extension</param>
        /// <param name="visible">Should the playback path be visible</param>
        private void SetPlaybackPathVisibility(AgentDestinationPoint extension, bool visible)
        {
            var isSelected = extension == destinationPointExtension;

            extension.DestinationPoint.SetPlaybackPathVisible(visible);
            extension.DestinationPoint.PlaybackPath.SetActive(visible);
            if (isSelected)
            {
                playbackPathToggle.SetIsOnWithoutNotify(visible);
            }
            foreach (var element in shownWithPlaybackPath)
            {
                element.SetActive(isSelected && visible);
            }

            if (isSelected)
            {
                UnityUtilities.LayoutRebuild(transform as RectTransform);
            }
        }
        /// <summary>
        /// Sets destination point as active or inactive if it is supported by selected agent
        /// </summary>
        /// <param name="extension">Changed destination point extension</param>
        /// <param name="active">Should the destination point be active</param>
        private void SetDestinationPoint(AgentDestinationPoint extension, bool active)
        {
            extension.DestinationPoint.SetActive(active);
            var isSelected = extension == destinationPointExtension;

            extension.DestinationPoint.SetVisibility(isSelected && active);
            if (isSelected)
            {
                destinationPointToggle.SetIsOnWithoutNotify(active);
            }
            foreach (var element in shownWhenActive)
            {
                element.SetActive(isSelected && active);
            }

            SetPlaybackPathVisibility(extension.DestinationPoint.IsPlaybackPathVisible);

            if (isSelected)
            {
                UnityUtilities.LayoutRebuild(transform as RectTransform);
            }
        }