-
Couldn't load subscription status.
- Fork 10
Draggable Nodes
Valk edited this page Sep 22, 2024
·
12 revisions
Simply add the [Draggable] attribute to any Node2D or Control node and it will become draggable in-game.
using Godot;
// Hold to drag and limit movement to vertical axis
[Draggable(DragType.Hold, DragConstraints.Vertical)]
public partial class DraggableNode : Node2D
{
public override void _Ready()
{
// Hook into the Draggable.DragReleased event
Draggable.DragReleased += OnDragReleased;
}
private void OnDragReleased(Node node)
{
// Get the draggable node
if (node.GetInstanceId() == GetInstanceId())
{
DraggableNode draggableNode = (DraggableNode)node;
// Do something with DraggableNode
draggableNode.QueueFree();
}
}
public override void _ExitTree()
{
// Unsubscribe from the event when the node is removed from the tree
Draggable.DragReleased -= OnDragReleased;
}
}