using UnityEngine; using UnityEngine.UIElements; namespace RPGCoreCommon.Helpers.Editor.UIElements { [UxmlElement] public partial class FakeObjectField : VisualElement { private Image _objectImage; private Label _objectLabel; public FakeObjectField() : this(null) { } public FakeObjectField(string labelText = "") { var field = new VisualElement(); field.AddToClassList("unity-object-field"); field.AddToClassList("unity-base-field"); field.AddToClassList("unity-base-field__aligned"); field.style.marginLeft = field.style.marginRight = 3; if (!string.IsNullOrEmpty(labelText)) { var label = new Label(labelText); label.AddToClassList("unity-label"); label.AddToClassList("unity-base-field__label"); field.Add(label); } var fieldInput = new VisualElement(); fieldInput.AddToClassList("unity-base-field__input"); fieldInput.AddToClassList("unity-object-field__input"); field.Add(fieldInput); var fieldObject = new VisualElement(); fieldObject.AddToClassList("unity-object-field__object"); fieldInput.Add(fieldObject); _objectImage = new Image(); _objectImage.AddToClassList("unity-object-field-display__icon"); fieldObject.Add(_objectImage); _objectLabel = new Label(); _objectLabel.AddToClassList("unity-object-field-display__label"); fieldObject.Add(_objectLabel); var fieldSelector = new VisualElement(); fieldSelector.AddToClassList("unity-object-field__selector"); fieldInput.Add(fieldSelector); Add(field); } public void Set(string text, Texture image) { _objectLabel.text = text; _objectImage.image = image; } public void Unset() { _objectLabel.text = null; _objectImage.image = null; } } }