2016-03-29 5 views
0

おはようございます。Unity3Dでのクエストシステムの実装

私はUnity3Dで物語主導のゲームに取り組んでいると私は、プレイヤーが物語を経て進行するために完了しなければならないクエストを持っていると思います。

は、どのようなクエストシステムを実装するための最良かつ最も効率的な方法だろうか?

現在、私は心の中で次のようなデータ構造を持っている:

  • クエスト(クラス)
    • クエスト名
    • クエストの説明
    • クエスト報酬
    • クエスト場所
    • それは側面ですか?そう?
    • メインクエストの名前は何ですか?
    • メインクエストを続ける必要がありますか?
  • QuestManager(クラス)のプレイが現在追求している何クエストすべてのクエスト
    • 一覧?
    • 現在のクエストの目的とサイドクエストのリスト
    • 現在のクエストでは、どのような目的が達成すると思われますか?それに応じてプレイヤーがクエスト/目的/サイドクエストを完了し、イベントを処理しているかどうかを
    • チェックし

データ構造はかなり合理的に見えますが、私は、このような一般的な方法で実装する方法がわかりません私は簡単かつ迅速に私のゲームでクエストを作成することができます。何か案は?

+3

私は問題が何であるかが表示されません。あなたが挙げたものは非常に一般的で合理的です。それを実装することについて何が混乱していますか?各弾丸ポイントは組み込みタイプを使用するか、独自のクラスを書くか –

+0

@GordonAllocmanこの混乱は、クエストシステムの個々の部分をそれぞれ作成した後、それらをすべて接続して究極の機能を作成しなければならないときに開始されます。もし誰かがそれらの箇条書きを取って、その機能を達成するためにどのように接続されるかの例を私に示したら、それほど混乱はありません – Tayab

+0

あなたはすでにQuestManagerインスタンスがあると思います。それはどのように一緒にすべての作品です。これはそれを行うための1つの可能な方法ですが、行くにつれてそれを変更する必要があることを理解するかもしれませんが、それは間違いなく合理的なスタートです。自分でクラスを作成しようとすると、混乱した場合は、試したコードとスタックした場所を投稿してください。 –

答えて

2

あなたが持っている一般的な考え方は罰金です。私は物事を少し修正するだろう。私はおそらくクエスト報酬もクラスにするでしょう。そうすれば報酬をカスタマイズするのが簡単になります。「メインクエストの名前は何ですか?」 Questオブジェクトを取得するメソッド(存在する場合)。こうすることで、簡単に親クエストをサブクエストから参照することができます。

私はこのすべての情報を格納するデータベースを使用して、あなたを想定していますか?そうでない場合は、sqliteを使用することをお勧めします。

この方法で、すべてのことをなど、より多くのクエストを追加するために必要なのユーザーに出更新されたデータベースファイルを送信することです。 dbにデータを追加するだけでもかなり簡単です。いいえハード

だから、あなたがデータを記入して、JSONにそのオブジェクトを変換し、モデルとしてこれらのクエストクラスを作成するなどのクエストをコーディングしません。それをデータベースに保存することができます。引き抜かれたら、JsonをQuestオブジェクトに変換することができます。Sqlite

それとも、また、このようにそれを行うことができますと一緒にこれを行うには

使用Newton-soft Json、:Walkthrough: Simple Object Model and Query

+0

答えをありがとう。私はデータベースを使用していないので、すべてのクエストの場所が一意であるため、ゲームのコンテキストでクエストに使用することはできませんでした。私は誰もが念頭に置いて言ったことを守り、クエストシステムを書くことを始めます。更新箇所を投稿する – Tayab

+0

@Tayab場所がユニークであるという理由だけでは、データベースを使用できないわけではありません。 –

関連する問題