你好,
这使得创建同一 NPC 的细微变体变得困难。如果我想调整某个实例(例如,给某个僵尸增加更多 HP),目前我必须从头创建一个全新的场景或游戏对象,这效率不高。
针对这种行为,是否有推荐的解决方法?或者有没有办法让这些设置对每个实例保持唯一?
谢谢!
Baz
2
你好!
出于好奇,你是通过 CTRL+D 还是右键点击“复制”来复制实例的?如果是这样,能否删除这些重复项,并改为通过以下方式实例化场景:
- 将场景从文件系统拖拽到场景中
- 右键点击你希望其所在的节点,然后点击“实例化子场景”
不幸的是,Godot 的资源属性在默认复制时会共享。虽然我们在可视化脚本中提供了一些解决方法,但在将对象放置到场景中时,我们还没有相应的解决方法。
我已经尝试了上述所有方法,最终结果都一样。
问题是变量设置中带有“本地到场景”选项。即使使用该选项,结果仍然相同。“本地到场景”选项没有任何作用。这些变量……并不可变……
据我理解,这些变量在运行时会变得唯一。但如果您无法在编辑器中单独修改它们,那么它们的意义何在?
Baz
4
您试过取消勾选“Local to Scene”后问题是否仍然存在?在我制作 Bazelot Quest 示例时,我甚至可以在森林关卡中复制我的僵尸,它们仍然能正常工作。不过我当时并没有勾选该选项。
我也在尝试复现您的报告,但无法成功。
您能否通过以下步骤重现该问题?
- 创建一个新对象。不要对其进行任何修改。
- 从“文件系统”选项卡将其拖入场景中,命名为类似 Test1 的名称。
- 从“文件系统”选项卡将第二个实例拖入场景中,命名为类似 Test2 的名称。
- 保存项目并重新打开。
- 编辑 Test1 上的任意变量,例如将最大生命值设置为 10。
- 切换到 Test2 对象,查看最大生命值变量是否发生了变化。

这是一个示例。父场景也被修改了。无论“相对于场景”选项是勾选还是取消勾选,都会出现相同的问题。
HP 也出现了同样的问题。我尝试过关闭并重新打开项目,但无济于事。
我运行的是从 Steam 下载的 Action Game Maker v1.0.12.stable [861d96a50]。
Baz
8
好的,这更清楚地解释了当前情况。我会检查这是否是预期的行为。
在此之前,在设置状态下,您可以使用 ChangeObjectProperty 将变量“应用到实例”,并在放置它们的场景中单独设置该操作,这样它们就不会共享(但您无法复制它们):
1 个赞
它对 HP 或任何变量都有效。非常感谢!!!这改变了一切。
2 个赞
Baz
10
好消息!他们正在修复在使用可编辑子对象时 Sw/Var 设置节点不唯一的问题。不确定会在哪个补丁中推出,但请留意相关更新。
1 个赞