Example #1
0
        private void DrawObjectHeader(RenderedTransform renderedTransform)
        {
            var locked     = m_LockedObjects.ContainsKey(renderedTransform.Transform);
            var lockedPrev = locked;

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("GameObject: " + renderedTransform.Transform.name);

            GUILayout.FlexibleSpace();

            var state     = locked ? m_LockedObjects[renderedTransform.Transform] : VisualisationState.None;
            var statePrev = state;

            EditorGUIUtility.labelWidth = 50f;
            EditorGUILayout.LabelField(Style.drawGizmosFor, Style.notExpandWidth);
            EditorGUIUtility.labelWidth = 0f;
            state = (VisualisationState)EditorGUILayout.EnumPopup(state);

            if (locked)
            {
                m_LockedObjects[renderedTransform.Transform] = state;
                renderedTransform.State = state;
            }
            else if (state != statePrev)
            {
                locked     = true;
                lockedPrev = false;
            }

            if (state != statePrev)
            {
                RepaintSceneAndGameViews();
            }

            locked = EditorGUILayout.ToggleLeft(Style.lockToggle, locked, Style.maxWidth50);

            EditorGUILayout.EndHorizontal();

            if (locked != lockedPrev)
            {
                if (locked)
                {
                    m_ObjectsToAdd.AddLast(new RenderedTransform(renderedTransform.Transform, state));
                }
                else
                {
                    m_ObjectsToRemove.AddLast(renderedTransform.Transform);
                }

                RepaintSceneAndGameViews();
            }
        }
Example #2
0
        private void DrawSingleInfoItem(RenderedTransform tr)
        {
            if (tr == null)
            {
                return;
            }

            if (!tr.IsValid())
            {
                m_ObjectsToRemove.AddLast(tr.Transform);
                return;
            }

            DrawObjectHeader(tr);
            tr.DrawInfoTable();
        }
Example #3
0
        private void UpdateSelection()
        {
            var selection = Selection.GetTransforms(SelectionMode.Unfiltered);

            m_TemporarySelection.Clear();

            // Adds rendered transforms that are not part of the m_LockedObjects set
            foreach (var tr in m_TransformsToRender)
            {
                if (!m_LockedObjects.ContainsKey(tr.Transform))
                {
                    m_TemporarySelection.Add(tr.Transform);
                }
            }

            var addedTransforms   = selection.Except(m_TemporarySelection);
            var removedTransforms = m_TemporarySelection.Except(selection);

            foreach (var tr in addedTransforms)
            {
                var newItem = new RenderedTransform(tr);

                if (!m_TransformsToRender.Contains(newItem) && newItem.HasBody)
                {
                    m_TransformsToRender.Add(newItem);
                }
            }

            foreach (var tr in removedTransforms)
            {
                if (!m_LockedObjects.ContainsKey(tr))
                {
                    m_TransformsToRender.Remove(tr);
                }
            }

            Repaint();
        }