在Unity3D中实现Quest系统

时间:2016-03-29 20:28:31

标签: c# unity3d

美好的一天。

我正在使用Unity3D中的故事驱动游戏,我希望玩家必须完成任务以完成故事。

实施任务系统的最佳和最有效的方法是什么?

目前我有以下数据结构:

  • 任务(班级)
    • 任务名称
    • 任务描述
    • Quest Reward
    • 任务位置
    • 这是一项副任务吗?
    • 主要任务的名称是什么?
    • 是否有必要继续主要任务?
  • QuestManager(Class)
    • 所有任务列表
    • 目前正在追求的是什么追求?
    • 当前任务的目标和副任务列表
    • 在当前任务中,该游戏的目标是什么?
    • 检查玩家是否完成了任务/目标/副任务并相应处理事件

数据结构看起来很合理,但我不知道如何以一种通用的方式实现,我可以轻松快速地在游戏中创建任务。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

你的一般想法似乎很好。我会稍微修改一下。我可能会将Quest奖励也归类。这样就可以更容易地定制奖励。我还会说“主要任务的名称是什么?”抓取Quest对象(如果存在)的方法。这样您就可以轻松地从子任务中引用父任务。

我假设您使用数据库存储所有这些信息?如果不是我建议使用sqlite。

这样,添加更多任务等所需的全部内容就是向用户发送更新的数据库文件。将数据添加到数据库也很容易/快速。没有硬编码任务等。

因此,您将这些Quest类创建为模型,填写数据,然后将该对象转换为JSON。然后可以将其存储在数据库中。一旦它被拉出,你可以将Json转换回Quest对象。

使用Newton-soft Json执行此操作以及Sqlite

或者你也可以这样做:Walkthrough: Simple Object Model and Query