アマゾンバナーリンク

ディスプレイ広告

スポンサーリンク

【Unity】数字をポップアップして簡単に表示できるDamage Numbers Proの紹介【Asset】

こんにちは!ジェイです。Unityでダメージなどの数字をポップアップして、わかるようなエフェクトを作りたい時ってありますよね?今回は、そんな時におすすめなアセットDamage Numbers Proの紹介をします。

記事内広告

特徴

  • カスタマイズ可能な番号、接頭辞、接尾辞
  • 豊富なテキストフォーマットオプション
  • フェードのカスタマイズ
  • レルプや速度の動きをカスタマイズ可能
  • 振動のカスタマイズ
  • 3Dゲームのための画面サイズと距離のカスタマイズ
  • ターゲットを追うことができる
  • 数字の組み合わせや足し算ができる
  • 小数点以下の表示が可能
  • ランダムスタートによる回転が可能
  • スポーンのパフォーマンスを向上させるプーリングの使用
  • ツールチップとヒントを備えたクリーンなインスペクタ
  • UIキャンバスなし
  • TextMeshProを使用
  • 任意のフォントを使用可能

Create

  1. Damage Number
    HierarchyウィンドウのGameObjectタブまたはプラスボタンをクリックします。
    その後、「2D Object/Damage Number」に移動して、空のダメージ番号を作成します。
  2. Font Asset (optional)
    Window/TextMeshPro/Font Asset Creator」に移動し、新しいFont Assetを作成します。
    ダメージ番号インスペクタの下部にある「TextMeshPro」ボタンをクリックします。
    作成したFont AssetをTextMeshProコンポーネントに割り当てます。
  3. Customize
    ダメージ番号のインスペクタで必要な機能をすべて有効にしてカスタマイズします。
    さらに、ダメージ番号のマテリアルで外観を変更することもできます。
  4. 最後に作成したダメージナンバーは後で参照します。
    プレハブとして保存するか、シーンで無効にしておきましょう。
    ダメージナンバーの生成に関するコードサンプルは以下にあります。

Spawn(C#)

ダメージナンバーは、他のプレハブと同様にスポーンすることができます。しかし、それを簡単にするための機能があります。この関数は、プーリングが有効になっている場合、プーリングの処理も行います。

DamageNumber damageNumber = numberPrefab.CreateNew(number, position);

スポーンした後でも、好きな設定を変更することができます(「Advanced」で見ることができます)

サンプルコード

using UnityEngine;
using DamageNumbersPro; //Import Namespace

public class Example : MonoBehaviour
{
    // インスペクタでプレハブを割り当てる
    public DamageNumber numberPrefab;
    
    public void CreateNumber(float number, Vector3 position)
    {
        // スポーンダメージ数
        DamageNumber damageNumber = numberPrefab.CreateNew(number, position);
    }
}

Advance

using UnityEngine;
using DamageNumbersPro; //Asset Namespace

public class Example : MonoBehaviour
{
    // インスペクタでプレハブを割り当てる
    public DamageNumber numberPrefab;
    
    public void CreateNumber(float number, Vector3 position, Transform target, bool is_heal)
    {
        // スポーンダメージ数
        DamageNumber damageNumber = numberPrefab.CreateNew(number, position);

        // 追いかける対象のターゲット
        damageNumber.followedTarget = target;

        //Color and Prefix
        if(is_heal)
        {
            damageNumber.numberSettings.color = new Color(0.5f, 1f, 0.5f); //Green Number
            damageNumber.prefix = "+"; //Prefix
        }
        else
        {
            damageNumber.numberSettings.color = new Color(1f, 0.5f, 0.5f); //Red Number
            damageNumber.prefix = ""; //No Prefix
        }
    }
}

並び替え順序

ダメージ番号にSorting Groupを追加します。並べ替えグループコンポーネントで、並べ替えレイヤーと並べ替え順序を設定します。

3D:ダメージ番号を3Dモデルから見えるようにするには、そのマテリアルのシェーダーを「TextMeshPro/Distance Field Overlay」に設定します。

トラブルシューティング

アセットのインポート後にコンソールにエラーメッセージが表示される場合、プロジェクトのパッケージマネージャーを開きます。まずは、TextMeshProのバージョン2.1以上がインストールされていることを確認してください。デモシーンの一部の数字が白く表示されます。これらの数字は光っているはずです。
下記の「光り方」をご覧ください。なお、このデモシーンの後処理は、内蔵パイプラインでのみ動作します。

カスタムインスペクタ

  • すべての変数にはツールチップが付いています。
  • 機能は無効にしたり、隠したりすることができます。
  • 無効にした機能はパフォーマンスを消費しません。
  • ほとんどの設定は読みやすいように折りたたむことができます。
  • 各機能にリセットボタンとヒントボタン
  • フェードをプレビューするスライダ
  • 素材の埋め込みとテキストメッシュプロのインスペクタ。

Number

豊富なテキストフォーマットのオプションがあります。

  • 無効にしてテキストのみを表示することもできます。
  • 設定可能な小数点以下の数字を表示できます。
  • 大きな数字にはドットを追加できます。(例:12.310)
  • 大きな数字を短くするサフィックスを付けることができます。(例:12K)

接頭辞と接尾辞

多くのテキストフォーマットオプションを備えています。

  • 数値の左または右にテキストを表示します。
  • また、数字の上や下にも表示できます。(改行)

フェージング

ダメージ番号をフェードイン/アウトします。

  • テキストのアルファを常にフェードします。
  • 2つのテキストメッシュプロを移動と拡大縮小で融合します。

Lerp Movement

  • ランダムなオフセットに向かって変化します。
  • 素早く減速するので読みやすい。

Velocity Movement

  • ランダムな初速で動きます。
  • ドラッグと重力のオプションがあります。

Shaking

  • 設定可能な周波数とオフセットで揺れます。
  • 振動を加えたいときに使用します。
  • また、フェージングにモーションを加えることもできます。

Start Rotation

ランダムなローテーションで出現します。

コンビネーション

  • 同じ組み合わせグループの他のダメージナンバーと組み合わせます。
  • 組み合わせによって数字の値が加算されます。
  • スパム化した数字を読みやすくするために使用できます。

Following

  • 数値をヒットターゲットに追従させるために使用できます。
  • スポーンしたときのターゲットに対するオフセットを維持しようとします。
  • ドラッグすると時間の経過とともに追従速度が低下します。

Perspective Camera

  • 3Dゲームの場合に有効にします。
  • メインカメラの方を向くか、(設定されていれば)カメラを上書きします。
  • 距離に応じてダメージ番号の画面サイズを制御します。

Pooling

  • 多少のラムを犠牲にして、スポーンのパフォーマンスを向上させます。
  • ダメージ番号をスポーンするには、numberPrefab.CreateNew(…..)関数を使用します !
  • numberPrefab.PrewarmPool()を使用すると、プールを完全に満たすことができます。
  • 各プレハブは独自のプールを持ち、そのプールサイズも異なります。

まとめ

Damage Numbers Proには、ダメージや回復などの数字をポップアップ表示させるための機能が豊富に揃っています。様々なジャンルのゲームで活躍してくれるアセットなので、ぜひ一度使ってみてください!

アイコンはAI・コンタクトさんからお借りしました。

+2