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