ゲームの実績システムを実装してみた。【Unity】
UnityでスマホアプリのStgを作っているのですが、実績システムを実装するにあたって、自分がどうやって作ったかを
備忘録的に書いていきたいと思います。
##そもそも実績システムとは...
自分がプレイ中にした行動に対して一定の規定をクリアしたら報酬がもらえるシステム。
どうすれば実績システムが作れるかを考えていきます。
まず、実績システムを作るために、2つの要素が必要と考えました。
#####1 プレイした時に実績としてデータが保存される機構。
#####2 保存されたデータを取得し、一定の規定をクリアしたら報酬を与える機構。
この二つの要素をクリアすれば実績システムが作れたといえると思います。
まず、1番目のプレイした時に実績としてデータが保存される機構を作っていきました。
public class SaveAchievement : MonoBehaviour
{
public static SaveAchievement saveAchievement;
public int enemyKillCount,gameoverCount,clearCount;
}
ここでは、実績を保存するためのスクリプトを作りました。
public staticで宣言することによって他のスクリプトから取得することを容易にし、
敵を倒したときの変数、ゲームオーバーになった時の変数、クリアした時の変数を
用意したので準備はばっちりです。ここに他のスクリプトから値を足していくことで
実績システムを作れると思います(敵を倒したときにSaveAchievementのenemyKillCountに
+1するというようなコードを書く)
2番目の保存されたデータを取得し、一定の規定をクリアしたら報酬を与える機構も作りました。
public class RewardAchievement : MonoBehaviour
{
int enemyKillJudgment = 10;//実績規定
if(enemykillCount <=enemyKillJudgment //{
//もしもタスクオブジェクトの(実績条件の)達成量が達成規定よりも上回ったら
//報酬を与える
}
}
これで、実績システムは完成となります。
##おわりに
実績システムの大枠は作れたのですが、やはり中身がどれだけ充実できているかという所だと思うので、中身を書くときに見やすいコードを意識してい書いていきたいものです。