Is there any way to get a node by its position?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By SebSharper

I am making an inventory system for my game, but I got one issue: I need to get the UI Node (TextureRect) that is in a certain position.
For example, to swap items between the inventory, I drag one item to another slot, and then I release the mouse button. I should be able to get the node that is in the position of the mouse (only when it is released).
Note: I use a GridContainer
Is there any way that I can achieve this?

Perhaps you can get the mouse’s local position relative to the GridContainer. Then have a function that calculates which square that is based on GridContainer’s square size, and number of columns and rows?

eod | 2020-04-25 01:12

Do you know the name of the function?

SebSharper | 2020-04-25 01:15

I was thinking this function, which you may be able to use as a standalone


Or it might be something like:


Here’s some other mouse positions that may be of help:
CanvasItem — Godot Engine (3.2) documentation in English

I would just try a few ways of getting the mouse position and print the result of those functions to the debug/output console until you get the position you want.

eod | 2020-04-25 01:26

:bust_in_silhouette: Reply From: hammeron

Control nodes have built-in drag and drop support.
You can see an implementation example in the Drag and Drop demo project.