Exemplo n.º 1
0
        public VisitStatus Visit <TContainer>(Property <TContainer, Entity> property, ref TContainer container, ref Entity value)
        {
            var enabled = GUI.enabled;

            GUI.enabled = false;

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(GetDisplayName(property), GUILayout.Width(EditorGUIUtility.labelWidth - 1));

            var name = value == Entity.Null ? "Entity.Null" : $"[{value.Index}:{value.Version}] {m_resolveNameCallback(value)}";

            GUI.enabled = true;

            if (GUILayout.Button(name, "ObjectField"))
            {
                if (value != Entity.Null)
                {
                    m_selectButtonCallback?.Invoke(value);
                }
            }

            GUI.enabled = enabled;

            EditorGUILayout.EndHorizontal();
            return(VisitStatus.Stop);
        }
Exemplo n.º 2
0
            public VisitStatus Visit <TProperty, TContainer>(IPropertyVisitor visitor, TProperty property, ref TContainer container, ref Entity value, ref ChangeTracker changeTracker) where TProperty : IProperty <TContainer, Entity>
            {
                InitStyles();

                if (!m_ignoreEntityCallback())
                {
                    GUI.enabled = true;
                    var pos       = EditorGUILayout.GetControlRect();
                    var buttonPos = pos;
                    buttonPos.xMin = buttonPos.xMax - 50f;
                    pos.xMax       = pos.xMax - 50f;

                    EditorGUI.LabelField(pos, $"{property.GetName()}: {m_resolveNameCallback(value)}, Index: {value.Index}, Version: {value.Version}", Styles.EntityStyle);
                    if (GUI.Button(buttonPos, "Select"))
                    {
                        m_selectButtonCallback?.Invoke(value);
                    }
                    GUI.enabled = false;
                }

                return(VisitStatus.Handled);
            }