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

Godot编辑器中如何通过工具创建的子节点选中父场景?

Godot @Tool脚本动态添加子节点无法选中父节点的修复方案

我有一个带有@tool注解、继承自Node3D的空场景,用于标记NPC生成位置。在编辑器模式下的_ready函数中,我添加了一个MeshInstance3D网格实例使其在编辑器中可见。该网格显示正常,但点击这个工具脚本动态创建的子节点时,无法选中其父场景;而静态添加相同网格时则可以正常选中父场景。尝试过重新父化或修改owner但无效,且子节点的AABB是正确的。

原脚本代码:

func _ready() -> void:
    if Engine.is_editor_hint():
        var mesh_instance = MeshInstance3D.new()
        mesh_instance.position.y += 0.03
        mesh_instance.cast_shadow = false
        var qmesh: QuadMesh = QuadMesh.new()
        qmesh.size = Vector2(0.4, 0.4)
        mesh_instance.mesh = qmesh
        add_child(mesh_instance)

解决方案

通过设置动态添加的子节点owner为父节点自身即可解决问题,注意必须先添加子节点再设置owner,先设置owner再添加子节点的方式无效。

修正后的完整脚本:

func _ready() -> void:
    if Engine.is_editor_hint():
        var mesh_instance = MeshInstance3D.new()
        mesh_instance.position.y += 0.03
        mesh_instance.cast_shadow = false
        var qmesh: QuadMesh = QuadMesh.new()
        qmesh.size = Vector2(0.4, 0.4)
        mesh_instance.mesh = qmesh
        add_child(mesh_instance)
        mesh_instance.owner = self

内容的提问来源于stack exchange,提问作者Jan Seda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:22:39