2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Unity】ゲームの実績システムを実装してみた。

Last updated at Posted at 2020-11-19

ゲームの実績システムを実装してみた。【Unity】

UnityでスマホアプリのStgを作っているのですが、実績システムを実装するにあたって、自分がどうやって作ったかを
備忘録的に書いていきたいと思います。

##そもそも実績システムとは...
自分がプレイ中にした行動に対して一定の規定をクリアしたら報酬がもらえるシステム。
どうすれば実績システムが作れるかを考えていきます。

まず、実績システムを作るために、2つの要素が必要と考えました。
#####1 プレイした時に実績としてデータが保存される機構。
#####2 保存されたデータを取得し、一定の規定をクリアしたら報酬を与える機構。
この二つの要素をクリアすれば実績システムが作れたといえると思います。
まず、1番目のプレイした時に実績としてデータが保存される機構を作っていきました。

実績保存クラス.C#
public class SaveAchievement : MonoBehaviour
{
    public static SaveAchievement saveAchievement;
    public int enemyKillCount,gameoverCount,clearCount;
}

ここでは、実績を保存するためのスクリプトを作りました。
public staticで宣言することによって他のスクリプトから取得することを容易にし、
敵を倒したときの変数、ゲームオーバーになった時の変数、クリアした時の変数を
用意したので準備はばっちりです。ここに他のスクリプトから値を足していくことで
実績システムを作れると思います(敵を倒したときにSaveAchievementのenemyKillCountに
+1するというようなコードを書く)

2番目の保存されたデータを取得し、一定の規定をクリアしたら報酬を与える機構も作りました。

実績報酬クラス.C#
public class RewardAchievement : MonoBehaviour
{
    int enemyKillJudgment = 10;//実績規定
    if(enemykillCount <=enemyKillJudgment //{
    //もしもタスクオブジェクトの(実績条件の)達成量が達成規定よりも上回ったら    
        //報酬を与える
    }
}

これで、実績システムは完成となります。
##おわりに
実績システムの大枠は作れたのですが、やはり中身がどれだけ充実できているかという所だと思うので、中身を書くときに見やすいコードを意識してい書いていきたいものです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?