/// <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(); } }
/// <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); } }