2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity】お手軽な経験値テーブル ※緩急自在な y=f(x) 【Animation Curve】

Posted at

概要

経験値テーブルとは、RPGにおけるレベル毎の必要経験値のことです。
レベルが上がるほど必要経験値が増えていくことが多いですよね。

指数関数なんかでもいいんですが、緩急をつけたいと思いませんか?
まあ、経験値テーブルというのはあくまで一例で、今回は自由自在な y=f(x) のご紹介です。

結論

Animation Curveがとても便利!
名前のわりにアニメーションと関係ない箇所でも活用できます。

サンプル

実装例
public class Player : MonoBehaviour
{
    public AnimationCurve needExp;
    public int level;
}

インスペクタ上の表示は以下のようになります。

image.png

NeedExpのグレーの部分をクリックして設定してみましょう。

今回は100レベルになるまで100万の経験値が必要な設定にしてみました。
image.png

検証

それでは下記のコードで検証してみましょう。

検証コード
    void Update()
    {
        level++;
        Debug.Log($"level:{level} next:{(int)needExp.Evaluate(level)}");
    }

image.png

レベルが上昇するにつれて必要な経験値が上がっておりグラフで設定した通りですね。
アイディア次第ではいろいろな活用法がありそうです。

2
5
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
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?