onready var _boardView_scene = load("res://UrBoardView.tscn")
获取场景引用。然后,我尝试以_urBoardViewInstance = _boardView_scene.instance()
这样的场景为例。UrBoardView场景在其最上面的节点上有一个BoardView类型的脚本(意味着场景是BoardView(-
extends Node
class_name BoardView
_urBoardViewInstance
在此处被实例化为Node。将其投射到BoardView在此处不起作用(给出null(-var boardViewCast = _urBoardViewInstance as BoardView
在将其发送到add_child(_urBoardViewInstance)
之前,我需要从BoardView脚本中调用一个自定义init方法。基本上,我不想将场景作为节点,而是作为它所附加的脚本类型来实例化。(或者像这样打
_urBoardViewInstance = _boardView_scene.instance().new(board)
这显然在Godot目前是不可能的。(而且这种铸造不起作用。这就是我铸造的方式
var boardViewCast: BoardView
_urBoardViewInstance = _boardView_scene.instance()
boardViewCast = _urBoardViewInstance as BoardView
boardViewCast.init(gameplay.Board)
则CCD_ 6在此之后为空。它基本上根本不投。
所以在脚本中,我试图通过从场景中获取节点来设置变量。onready var board: UrBoard = $UrBoard
就是这样。删除变量解决了问题(实际上没有从getNode设置var。保留变量(。不知道为什么会引起这个问题。因为场景可以作为一个节点作为实例。它被添加到child中。脚本没有任何错误。它在自己的场景中运行得很好。