Game development 实例化节点为';跑步时看不见
我有一个网格,它扩展了TileMap,我正试图在其中生成面板。面板延伸区域2D 层次结构:Game development 实例化节点为';跑步时看不见,game-development,godot,gdscript,Game Development,Godot,Gdscript,我有一个网格,它扩展了TileMap,我正试图在其中生成面板。面板延伸区域2D 层次结构: 主场景->玩家网格场景->网格场景->[玩家场景,x个面板场景(通过spawn_panels功能添加)] 请注意,这些都是在2D编辑器中添加的,只有面板是通过脚本添加的 为了生成面板,我在网格中运行了这个函数: func spawn_panels(charType): var panelInit = null var panel = null var childPanel = null
主场景->玩家网格场景->网格场景->[玩家场景,x个面板场景(通过spawn_panels功能添加)] 请注意,这些都是在2D编辑器中添加的,只有面板是通过脚本添加的 为了生成面板,我在网格中运行了这个函数:
func spawn_panels(charType):
var panelInit = null
var panel = null
var childPanel = null
if charType == PLAYER:
panelInit = AllyPanel
elif charType == ENEMY:
panelInit = EnemyPanel
for x in grid_s_x:
for y in grid_s_y:
panel = panelInit.new(x, y)
self.add_child(panel)
panel.set_owner(self)
panel.set_name("panel" + str(x) + str(y))
panel.position = map_to_world(Vector2(x, y)) + cell_size / 2
但是,当游戏运行时,面板不可见。我已经打印了树,可以看到它们被正确添加,并且还验证了它们没有被添加到边界之外,因为我已经将它们的位置硬编码为0,0和玩家位置(玩家可见),但它仍然不可见
感谢您的帮助,谢谢 当您添加从.new()创建的实例并将其添加到节点树时,GDScript不喜欢它。这意味着您必须预加载/加载它(而不是通过类引用它),然后以这种方式添加它 即:
var a = preload("res://a.tscn")
add_child(a)