void OnProjectStateDataChanged(UIProjectStateData data) { m_TeleportPicker = data.teleportPicker; if (m_PreviousTarget == data.teleportTarget) { return; } if (data.teleportTarget.HasValue) { m_Source = m_CameraTransform.position; m_Destination = data.teleportTarget.Value; m_IsTeleporting = true; m_IndicatorInstance = Instantiate(m_IndicatorPrefab); m_IndicatorInstance.transform.position = m_Destination + m_IndicatorOffsetFixed; // billboard effect m_IndicatorInstance.transform.LookAt(m_Source); // avoid the full size indicator popping up before the animation m_IndicatorScale.y = 0f; m_IndicatorInstance.transform.localScale = m_IndicatorScale; // disable free fly camera so it doesn't interfere if (m_FreeFlyCamera != null) { m_FreeFlyCamera.enabled = false; } } m_PreviousTarget = data.teleportTarget; }
void OnProjectStateDataChanged(UIProjectStateData data) { m_ObjectPicker = data.objectPicker; if (data.objectSelectionInfo != m_CurrentObjectSelectionInfo) { m_CurrentObjectSelectionInfo = data.objectSelectionInfo; if (m_SelectedDatas.Any(s => s.userId == data.objectSelectionInfo.userId)) { var selectedData = m_SelectedDatas.First(s => s.userId == data.objectSelectionInfo.userId); m_SelectedDatas.Remove(selectedData); } var selectedObject = data.objectSelectionInfo.CurrentSelectedObject(); if (selectedObject != null) { var metadata = selectedObject.GetComponentInParent <Metadata>(); if (metadata != null) { selectedObject = metadata.gameObject; } else { selectedObject = null; } } if (data.objectSelectionInfo.userId == m_CurrentUserId) { m_CurrentSelectedGameObject = selectedObject; } if (data.objectSelectionInfo.CurrentSelectedObject() != null) { m_SelectedDatas.Add(new SelectionData { userId = data.objectSelectionInfo.userId, selectedObject = selectedObject, colorId = data.objectSelectionInfo.colorId }); } UpdateMultiSelection(); } if (data.highlightFilter != m_CurrentHighlightFilter) { m_CurrentHighlightFilter = data.highlightFilter; StartCoroutine(WaitBeforeUpdateHighlight()); } if (data.activeProject != m_CachedActiveProject) { m_CachedActiveProject = data.activeProject; m_SelectedDatas.Clear(); UpdateMultiSelection(); } }
void OnProjectStateDataChanged(UIProjectStateData data) { m_ObjectPicker = data.objectPicker; m_IsMetadataFilterActive = !string.IsNullOrEmpty(data.highlightFilter.filterKey) || !string.IsNullOrEmpty(data.highlightFilter.groupKey); if (data.objectSelectionInfo != m_CurrentObjectSelectionInfo) { ResetSelectedObjectHighlight(); var selectedObject = data.objectSelectionInfo.CurrentSelectedObject(); if (selectedObject != null) { var metadata = selectedObject.GetComponent <Metadata>(); if (metadata == null) { while (selectedObject.transform.parent != null) { selectedObject = selectedObject.transform.parent.gameObject; metadata = selectedObject.GetComponent <Metadata>(); if (metadata != null) { break; } } } if (metadata != null) { m_CurrentLayer = selectedObject.layer; } else { selectedObject = null; } } m_CurrentSelectedGameObject = selectedObject; m_CurrentObjectSelectionInfo = data.objectSelectionInfo; UpdateSelectedObjectHighlight(); } if (data.highlightFilter != m_CurrentHighlightFilter) { if (m_CurrentSelectedGameObject != null) { m_CurrentLayer = m_CurrentSelectedGameObject.layer; UpdateSelectedObjectHighlight(); } m_CurrentHighlightFilter = data.highlightFilter; } }
void OnProjectStateDataChanged(UIProjectStateData data) { m_ObjectPicker = data.objectPicker; }