You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:43:20