gpt4 book ai didi

c# - 在 Unity 中存储只读数据的良好实践

转载 作者:行者123 更新时间:2023-12-03 08:37:47 26 4
gpt4 key购买 nike

我正在制作一部视觉小说,我的游戏使用一些存储重要数据的自定义类。

示例:

public class Speech
{
public Sprite CharacterHead; // Holds a reference to a sprite which is the "head" of who's currently speaking
public LocalizedString SpeechOrigin; // Holds a reference to a localizedstring that is what that character is saying based on the language. (Uses Unity.Localization)
public string Name; // the name of the character that is speaking
}

这个“Speech”类在运行时不应更改,只需要在对话期间读取。

我的问题是:存储此类数据的通用良好实践方法是什么?我对统一相当陌生,我发现做到这一点的唯一方法是通过声明单一行为类的列表并通过检查器编辑它们,但这似乎不是在游戏中处理此问题的有效方法有 1000 多种不同的“语音”。

Ps:不要介意所有变量都是公开的,它们现在这样是为了使开发的某些部分更容易,到时候我会更改必要的变量。

最佳答案

为什么不直接使用ScriptableObject?这是Unity在游戏中存储数据的默认方式。您还可以从 Unity 编辑器编辑它,而不是使用其他外部编辑器。您还可以将游戏项目文件夹中的任何资源拖放到其中(例如头部的纹理、整个本地化的刺痛数据、对话音频剪辑等)

https://docs.unity3d.com/Manual/class-ScriptableObject.html

https://youtu.be/aPXvoWVabPY

关于c# - 在 Unity 中存储只读数据的良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63384593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com