Beispiel #1
0
        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;
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
 void OnProjectStateDataChanged(UIProjectStateData data)
 {
     m_ObjectPicker = data.objectPicker;
 }