拖放在Godot 3的网格容器中不起作用

时间:2018-10-25 23:57:46

标签: godot gdscript

我正在使用Godot为大学视频游戏开发俱乐部的塔防游戏开发UI。我有将塔从菜单拖动到板上的代码,但是它无法正常工作。我已经在一个单独的文件中对其进行了测试,并且可以正常工作,但是只要在实际程序中运行它(该程序在GridContainer中具有转塔),它就会停止工作。当前,每个炮塔都是一个TextureRect,它们都是GridContainer的子级,而GridContainer本身是另一个TextureRect(即背景)的子级。最后,场景的根是MarginContainer。

这是代码。它基本上只是官方的拖放演示,但针对TextureRects进行了修改。

extends TextureRect

func get_drag_data(pos):
    var prev = TextureRect.new()
    prev.texture = texture
    prev.rect_size = Vector2(50,50)
    set_drag_preview(prev)
    return texture

func can_drop_data(pos, data):
    return true

func drop_data(pos, data):
    texture = data

所以我的问题是,当被拖动的东西放在容器中时,如何进行拖放工作?我可以在没有容器的情况下执行此操作,但是听起来这会导致UI设计不好,所以我宁愿不这样做。

0 个答案:

没有答案