Unity 在构建中生成 ScriptableObject

Unity make ScriptableObject on a build

我是脚本化对象的新手,但我看过很多教程将它们用于库存系统和配方。我的问题是我的游戏的未来玩家是否有可能在最终版本中创建新的“配方”,并将其保存为可编写脚本的对象。与 Minecraft 类似,您可以使用数据包创建新配方。

ScriptableObjects 并不是真的打算以这种方式使用。它们是您构建中的资产,就像在编辑时保存在场景中的对象一样。

一种选择是尝试将它们保存为 Addressables 或 AssetBundles,以便游戏可以动态加载它们。我认为这些设施在 运行 时间都不可用,因此您必须克服很多困难才能获得正确的存储格式。我不建议这样做,只使用常规对象序列化来保存内容。

值得注意的是,当您在编辑器中 运行 游戏并在 运行 时直接更新您的 ScriptableObjects 时,它会更新资产并与项目一起保存。虽然它可能看起来很有效,但它只在编辑器中有效。在你的游戏的真实构建中,它不会被保存,并且每次你开始你的游戏时都会有它的原始值(就像场景对象所有 return 到它们的原始状态)。