将场景转换为附加脚本的类型,或者通过在Godot中传递参数来实例化



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中。脚本没有任何错误。它在自己的场景中运行得很好。

最新更新