可以/应该使用 ScriptableObjects 来存储字符数据吗?
Can / Should ScriptableObjects be used to store character data?
我正在开发一款回合制角色扮演游戏,想知道使用 ScriptableObjects
来存储角色数据是否是个好主意,这些角色数据会在运行时随时更改,例如统计数据,物品栏物品、法术和能力等。我知道 ScriptableObjects
通常是预定义的并且只读,所以我想在决定之前四处询问一下。
ScriptableObjects
非常适合在运行时存储数据,但如果您希望数据在游戏会话之间持续存在,则需要将数据写入文件。
Application.persistentDataPath can be used to get a path to a place where you can save game data in files. You can then create a file and save your data in json format.
这将允许您在运行时修改脚本对象,然后在保存游戏时将它们转换为 json 文本并将数据存储在文本文件中。
然后当您再次打开游戏时,您可以读取此文件并将数据 re-apply 写入脚本对象。
只要确保您的所有数据都是可序列化的,它就可以正常工作。
是的,ScriptableObjects 是存储角色数据的好方法。
实际上,我会根据游戏的复杂性建议一种更简单的方法。 Unity 有一个叫做 Visual Scripting 的东西,它公开了 3 个核心和非常有趣的变量类型。
- 场景变量 - 仅存在于场景中
- 应用程序变量 - 在应用程序的生命周期中存在
- 保存的变量 - 即使在应用程序关闭后仍然存在
这可以通过代码和 node-like 图表来访问。
使用Unity.VisualScripting
我正在开发一款回合制角色扮演游戏,想知道使用 ScriptableObjects
来存储角色数据是否是个好主意,这些角色数据会在运行时随时更改,例如统计数据,物品栏物品、法术和能力等。我知道 ScriptableObjects
通常是预定义的并且只读,所以我想在决定之前四处询问一下。
ScriptableObjects
非常适合在运行时存储数据,但如果您希望数据在游戏会话之间持续存在,则需要将数据写入文件。
Application.persistentDataPath can be used to get a path to a place where you can save game data in files. You can then create a file and save your data in json format.
这将允许您在运行时修改脚本对象,然后在保存游戏时将它们转换为 json 文本并将数据存储在文本文件中。
然后当您再次打开游戏时,您可以读取此文件并将数据 re-apply 写入脚本对象。
只要确保您的所有数据都是可序列化的,它就可以正常工作。
是的,ScriptableObjects 是存储角色数据的好方法。 实际上,我会根据游戏的复杂性建议一种更简单的方法。 Unity 有一个叫做 Visual Scripting 的东西,它公开了 3 个核心和非常有趣的变量类型。
- 场景变量 - 仅存在于场景中
- 应用程序变量 - 在应用程序的生命周期中存在
- 保存的变量 - 即使在应用程序关闭后仍然存在
这可以通过代码和 node-like 图表来访问。
使用Unity.VisualScripting