Unity ソシャゲ ミッション作り方

  • このエントリーをはてなブックマークに追加
  • LINEで送る

Unity ソシャゲ ミッション作り方

ゲーム中に収集した累積にもとづき実績に応じて、アイテムをプレゼントする仕組みを実装した。

累積データの収集

  • agregateクラス作成    累積データをためておく場所。
  • agregateのクラスの永続化とサーバー同期    シリアライズしたデータのクエリ文字への変換。
  • サーバーデータの読み込み agregateクラスの再生成

上記3ステップを繰り返す。

累積データの収集タイミングは、メニュー画面中では随時、パズルゲーム時は、内部の変数に加算後リザルト画面でのサーバー同期処理とした。

日付の保持を行い、ログイン時に日付が更新されていれば、デイリーミッションの agregateを初期化

これで、 ゲーム中全体のミッションと デイリーミッションの実装を行った。

日付の管理方法は、以前の記事   unityで曜日の取得時に  曜日の文字列を保持し、当日と異なれば日付変更とした。

 

実際のミッション実装サンプル

まず、 ログイン時に agregateクラスを生成

agregate クラスはこんな感じ。長いので簡略化

 

そして、各累積データの更新がある場合は、下記のように 一つの項目で デイリーミッションと 全体ミッションに対して更新を行う

 

最後に 適切なタイミングでサーバーに送る送る処理を行う。受取サーバーでは、データのパースを再度行う

 

phpで$s 変数にクエリのパラメータを連結して update

 

日付の変更が起きた場合の デイリーのみの初期化 unity

 

大変長くなったが、ここまでで半分。次は、ミッション自体を設定する。

累積データの値が決めた値を超えたら、ミッションの達成をお知らせする。

ミッションで得られる アイテムや得点を配布する処理を作成する

 

ミッションリストのCSVの定義は下記で行う。 使い方はログイン時と同様

mission_day_dataの変数と同名のテーブルを sqliteに作成して使用する

 

ミッションクリアの評価関数。簡略化してます

 

 

この他、 ミッションリストの表示とミッション達成フラグの送受信が必要になる。上記コード sumi_fragが該当。

実際の動作は、インムス ソシャゲと化した先輩をご覧ください。

 

  • このエントリーをはてなブックマークに追加
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*