Files
TheVVaS-Assets/RPGCoreCommon/Helpers/Editor/UIElements/FakeObjectField.cs
T
2026-04-25 23:37:10 +02:00

66 lines
2.2 KiB
C#

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