using UnityEngine; using UnityEngine.UIElements; namespace UnityEditor.VFX.UI { abstract class VectorPropertyRM : SimpleVFXUIPropertyRM where T : VFXVectorNField, new() { public VectorPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth) { fieldControl.onValueDragFinished += ValueDragFinished; fieldControl.onValueDragStarted += ValueDragStarted; } protected override void UpdateIndeterminate() { ((VFXVectorNField)field).indeterminate = indeterminate; } } class Vector4PropertyRM : VectorPropertyRM { public Vector4PropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth) { } public override float GetPreferredControlWidth() => 224; public override INotifyValueChanged CreateField() { var label = new Label(ObjectNames.NicifyVariableName(provider.name)); label.AddToClassList("label"); Add(label); return new VFXVector4Field(); } } }