我已经在开发一个游戏几个月了,刚刚完成了游戏的初始部分,所以我想利用这个机会来优化一下游戏。游戏本身已经比较完善,但是在后台,它是一个噩梦。最大的问题就是对话系统。

为了背景,这是一个第一人称叙事游戏,轻微地融入生存恐怖元素,所以它有很多对话。我的处理方法是每个对话框都是一个单独的游戏对象,它使得下一个对话框激活并使自己失效。然而,我发现采用这种方法会让代码变得混乱并且容易引发bug。

是否有人有关于如何创建一个整洁的对话系统的建议,这个对话系统需要支持以下功能,包括:

- 根据行数自定义输入速度的文字输入。

- 根据行数自定义的输入声音。

- 根据行数自定义的文字颜色。

- 分支路径和选项。

- 在行数发生事件时,发生效果和事件(例如,保存一个标志时调用一个事件)。

我已经熟悉了在编程中实现打字效果的部分内容,它更需要帮助的是存储所有对话和每行的变量的方法。

我目前在犹豫之间使用可编辑对象(scriptable objects)或者重新设计当前的基于对象的系统来使其更加整洁。

我也希望不使用资产商店包来实现这个功能,因为我想学习它!

如果我使用了不正确的术语,请我抱歉。感谢任何回复!