Edit of asset "Drag and Drop 3D" Accepted

Old/Current New/Edit
Title Drag and Drop 3D Drag and Drop 3D
Description This tool enables easy drag-and-drop functionality for 3D physical objects.

1. Add the `DragDropController.gd` as an `AutoLoad` (aka singleton) to your project.
2. Populate your 3D scene with physical objects
3. As a sibling to the Physics object (e.g. Area, KinematicBody, RigidBody, etc...), add a `Draggable` node
4. Register to the signals of the Draggable node as you see fit, especially the `drag_move` signal

The DragDropController uses raycasting to detect where the mouse is hovering over (excuding the dragged object).
Use this signal to update the position of your object as it is being dragged. It is done this way since you may want a snapping, animation, or something else, so it is for you to decide.
The signal sends two variables, the draggable object and the raycast dictionary output (see https://docs.godotengine.org/en/3.2/classes/class_physicsdirectspacestate.html#class-physicsdirectspacestate-method-intersect-ray for more details)

As an example, you may want to receive the signal as the following to simple slide over the collider object:

func _on_Draggable_drag_move(node, cast):
set_translation(cast['position'])

Remember to use pivot points or references to properly position and avoid object overlaps.

There is an example project provided where a draggable box slides above a plane.
This tool enables easy drag-and-drop functionality for 3D physical objects.

1. Add the `DragDropController.gd` as an `AutoLoad` (aka singleton) to your project.
2. Populate your 3D scene with physical objects
3. As a sibling to the Physics object (e.g. Area, KinematicBody, RigidBody, etc...), add a `Draggable` node
4. Register to the signals of the Draggable node as you see fit, especially the `drag_move` signal

The DragDropController uses raycasting to detect where the mouse is hovering over (excuding the dragged object).
Use this signal to update the position of your object as it is being dragged. It is done this way since you may want a snapping, animation, or something else, so it is for you to decide.
The signal sends two variables, the draggable object and the raycast dictionary output (see https://docs.godotengine.org/en/3.2/classes/class_physicsdirectspacestate.html#class-physicsdirectspacestate-method-intersect-ray for more details)

As an example, you may want to receive the signal as the following to simple slide over the collider object:

func _on_Draggable_drag_move(node, cast):
set_translation(cast['position'])

Remember to use pivot points or references to properly position and avoid object overlaps.

There is an example project provided where a draggable box slides above a plane.
Category Scripts Scripts
License MIT MIT
Repository Provider GitHub GitHub
Repository Url https://github.com/christinoleo/godot-plugin-DragDrop3D https://github.com/christinoleo/godot-plugin-DragDrop3D
Issues Url https://github.com/christinoleo/godot-plugin-DragDrop3D/issues https://github.com/christinoleo/godot-plugin-DragDrop3D/issues
Godot version Godot 3.2 Godot 3.2
Version String 1.0 1.0
Download Commit 09d961932de1f5443e973781d7a3b8ca4c95ba91 1d037a38b0def14486bf6b67d3a2150decedeec7
Download Url (Computed) https://github.com/christinoleo/godot-plugin-DragDrop3D/archive/09d961932de1f5443e973781d7a3b8ca4c95ba91.zip https://github.com/christinoleo/godot-plugin-DragDrop3D/archive/1d037a38b0def14486bf6b67d3a2150decedeec7.zip
Icon Url http://github.com/christinoleo/godot-plugin-DragDrop3D/raw/master/icon.png
http://github.com/christinoleo/godot-plugin-DragDrop3D/raw/master/icon.png
Preview Insert
Type image
Image/Video URL https://youtu.be/_FGTHA_OjOc
Thumbnail