如何在Godot主场景脚本中访问实例化子场景的导出变量
在Godot中主场景访问子实例的导出变量
方法一:通过节点路径直接访问
- 先给主场景中的每个子实例设置唯一的节点名称(比如在场景树里将三个实例分别命名为
Role1、Role2、Role3) - 在主场景的控制脚本中,通过节点路径直接获取实例并访问
name变量:# 主场景脚本示例 func _ready(): # 获取第一个实例的name值 var role1_name = $Role1.name print(role1_name) # 获取第二个实例的name值 var role2_name = $Role2.name print(role2_name) # 获取第三个实例的name值 var role3_name = $Role3.name print(role3_name)
方法二:通过组批量获取所有子实例
- 给所有子实例添加同一个组:打开子场景的根节点属性面板,找到「Groups」选项,添加一个统一的组名(比如
player_roles) - 在主场景脚本中,通过组获取所有实例并遍历访问
name:# 主场景脚本示例 func _ready(): var all_role_instances = get_tree().get_nodes_in_group("player_roles") for role in all_role_instances: print("角色名称:", role.name)
方法三:通过导出数组变量引用子实例
- 在主场景的控制脚本中导出一个节点数组,然后在编辑器中手动关联子实例:
# 主场景脚本示例 @export var role_instances: Array[Node] func _ready(): for role in role_instances: print("角色名称:", role.name) - 操作步骤:选中主场景中挂载该脚本的节点,在检查器面板找到
role_instances数组,将场景树中的三个子实例依次拖入数组即可。
内容的提问来源于stack exchange,提问作者Dandy Wallaby
相关产品推荐
相关产品推荐

