Game development 实例化节点为';跑步时看不见

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

我有一个网格,它扩展了TileMap,我正试图在其中生成面板。面板延伸区域2D

层次结构:
主场景->玩家网格场景->网格场景->[玩家场景,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)