using System;
using UnityEngine.EventSystems;
namespace Unity.VisualScripting
{
/// <summary>
/// Called when a move event occurs.
/// </summary>
[UnitCategory("Events/GUI")]
[UnitOrder(21)]
public sealed class OnMove : GameObjectEventUnit<AxisEventData>
{
public override Type MessageListenerType => typeof(UnityOnMoveMessageListener);
protected override string hookName => EventHooks.OnMove;
/// <summary>
/// The axis event data.
/// </summary>
[DoNotSerialize]
[PortLabelHidden]
public ValueOutput data { get; private set; }
protected override void Definition()
{
base.Definition();
data = ValueOutput<AxisEventData>(nameof(data));
}
protected override void AssignArguments(Flow flow, AxisEventData data)
{
flow.SetValue(this.data, data);
}
}
}