Unity 2021.3 以降 / uGUI。Inspector で触れる調整項目は 51個(+シェーダー7項目)、コードは一度も開かなくて構いません。Asset Store の同種 UI/HUD アセットは $20〜$60 の帯で並んでいます。
Assets/GameUiKit| ファイル | 用途 |
|---|---|
Runtime/UiKitTheme.cs | 色・警告ライン・基準時間を1つのアセットにまとめる置き場。ここを自分のゲームの色に変えるだけで、体力バー・ダメージ数字・通知の色が一度に変わります。各コンポーネントの theme 欄は空でも動きます。 |
Runtime/HealthBarView.cs | 体力バー本体。遅れて落ちる「ダメージ跡」バー、フレームレートに依存しない追従、最大値0での0除算回避、シーン読み込み直後に0から伸びる不具合の防止まで入っています。Image Type が Filled でなければ自動で直します。 |
Runtime/DamageNumberSpawner.cs | 浮き上がって消えるダメージ数字。poolSize の数だけ作って以後は使い回すので、ボス戦で毎フレーム Instantiate して GC が跳ねることがありません。会心・回復の色分けと左右のばらけも入っています。 |
Runtime/ToastQueue.cs | 一行通知の待ち行列。コルーチンを使わず Update だけで動くので、表示の途中でオブジェクトを無効化しても中途半端なフェードが残りません。同じ文章の連投を無視し、溢れたぶんは古いものから捨てます。ポーズ中(timeScale = 0)でも流せます。 |
Runtime/SafeAreaFitter.cs | ノッチ・ホームバーを避ける全画面コンテナ。安全領域が実際に変わったときだけ計算するので、毎フレームのレイアウト再構築が起きません。画面回転・機種違いにそのまま追従し、余白を入れすぎても潰れません。 |
Runtime/UiButtonFeedback.cs | 押し込みの縮みと音、そして連打の無視。cooldownSeconds のあいだ2回目の入力を捨てるので、購入・決定ボタンの二重発注が起きません。OnDisable で購読を外し、こちらが無効化したときだけボタンを元に戻します(ゲーム側が意図的に無効化したボタンは触りません)。 |
Shaders/UiRoundedPanel.shader | PNG を1枚も使わずに角丸パネルとゲージを描くシェーダー。距離関数で角丸と枠を計算するので、解像度をいくら上げてもボケず、9スライス画像も要りません。ライティングに依存しない Unlit なので Built-in と URP で描画されます(HDRP は未検証)。 |
Documentation/QuickStart.md | インポート手順・動作環境・5分セットアップ・詰まったときの対処・購入後の扱い(7日返金/バージョン軸の無料更新/問い合わせ)まで、この1枚で完結する日本語の手順書。入っていないもの(画像素材)も先に明記します。 |
| ファイル | フィールド | 効果 |
|---|---|---|
Runtime/HealthBarView.cs | maxValue | 自分のゲームの数字を入れる場所。0 のあいだは 0 除算を避けてバーを 0 のままにします |
Runtime/HealthBarView.cs | followSpeed | 0 で即時反映、8 前後で自然な追従。フレームレートが変わっても見え方が変わりません |
Runtime/HealthBarView.cs | ghostDelay | 大ダメージの重さはこの1つで決まります。0.3〜0.6 が見やすい範囲 |
Runtime/HealthBarView.cs | ghostSpeed | followSpeed より小さくすると跡がはっきり残ります |
Runtime/HealthBarView.cs | labelFormat | 「34 / 100」「34」「HP 34」などをコードを触らずに変えられます |
Runtime/DamageNumberSpawner.cs | poolSize | この数だけ作って以後は使い回します。ボス戦でメモリと GC が跳ねません |
Runtime/DamageNumberSpawner.cs | riseDistance | 画面の解像度と UI の大きさに合わせて調整します |
Runtime/DamageNumberSpawner.cs | lifeSeconds | 手数の多いゲームほど短く。0.6〜1.0 が目安です |
Runtime/DamageNumberSpawner.cs | spreadX | 連続ヒットで数字が1か所に重なって読めなくなるのを防ぎます |
Runtime/DamageNumberSpawner.cs | criticalScale | 会心の気持ちよさをコードなしで調整できます |
Runtime/ToastQueue.cs | maxQueued | 拾い物の連続で通知が数分ぶん詰まるのを防ぎます。溢れたぶんは古いものから捨てます |
Runtime/ToastQueue.cs | holdSeconds | 文章の長さに合わせて。読み切れない・長すぎるの調整点 |
Runtime/ToastQueue.cs | ignoreTimeScale | Time.timeScale = 0 のメニュー中に通知を出したいときに ON |
Runtime/ToastQueue.cs | dropRepeats | 同一の通知が縦に並ぶ、いちばん多い見苦しさを止めます |
Runtime/UiButtonFeedback.cs | cooldownSeconds | 購入・決定ボタンの二重発注を止める場所。0.4 秒以上を推奨します |
Runtime/UiButtonFeedback.cs | pressScale | 0.94 で 6% 縮みます。触った手応えの強さを決めます |
Runtime/SafeAreaFitter.cs | extraPadding | 端末の端で指が掛かる場合に、機種ごとの微調整をここだけで済ませます |
Runtime/SafeAreaFitter.cs | applyTopBottom | 縦持ちと横持ちで避けたい方向が違うため、方向ごとに切り替えられます |
Runtime/UiKitTheme.cs | warnRatio | 0.3 で残り30%。自分のゲームの緊張のライン(買い手自身の設計値)を入れる場所 |
Runtime/UiKitTheme.cs | healthLowColor | 買い手のゲームの配色に合わせる中心。ここ1か所で全画面のバーが変わります |
Runtime/UiKitTheme.cs | baseDuration | ToastQueue の useThemeTiming を ON にすると、キット全体の速さがこの値で揃います |
Runtime/UiKitTheme.csこのファイルをそのままプロジェクトにコピーしてください。パック収録の1本です。
using UnityEngine;
namespace GameUiKit
{
// One asset that holds every colour and timing the kit uses.
// Create it once, drop it into each component, restyle the whole HUD from here.
[CreateAssetMenu(menuName = "Game UI Kit/Theme", fileName = "UiKitTheme")]
public class UiKitTheme : ScriptableObject
{
[Tooltip("体力が十分にあるときのバーの色。")]
public Color healthFullColor = new Color(0.29f, 0.76f, 0.35f, 1f);
[Tooltip("体力が warnRatio を下回ったときのバーの色。")]
public Color healthLowColor = new Color(0.87f, 0.24f, 0.24f, 1f);
[Tooltip("遅れて追いつく「ダメージ跡」バーの色。")]
public Color healthGhostColor = new Color(0.96f, 0.85f, 0.29f, 1f);
[Range(0f, 1f)]
[Tooltip("この割合を下回ると体力バーが警告色に変わります(0.3 = 残り30%)。")]
public float warnRatio = 0.3f;
[Tooltip("通常ダメージ数字の色。")]
public Color damageColor = new Color(1f, 0.94f, 0.85f, 1f);
[Tooltip("会心(クリティカル)ダメージ数字の色。")]
public Color criticalColor = new Color(1f, 0.62f, 0.16f, 1f);
[Tooltip("回復数字の色。")]
public Color healColor = new Color(0.44f, 0.87f, 0.55f, 1f);
[Tooltip("トースト通知の文字色。")]
public Color toastTextColor = new Color(1f, 1f, 1f, 1f);
[Min(0)]
[Tooltip("UI アニメーションの基準時間(秒)。ToastQueue の useThemeTiming を ON にすると、この値で速さが揃います。")]
public float baseDuration = 0.25f;
// The ratio is clamped here, so a caller passing 1.4 or -3 can never pick a wrong colour.
public Color HealthColor(float ratio)
{
if (ratio < 0f) ratio = 0f;
if (ratio > 1f) ratio = 1f;
return ratio <= warnRatio ? healthLowColor : healthFullColor;
}
// Keeps the values inside the range the timers can actually use, even after a hand edit.
private void OnValidate()
{
if (baseDuration < 0f) baseDuration = 0f;
if (warnRatio < 0f) warnRatio = 0f;
if (warnRatio > 1f) warnRatio = 1f;
}
}
}
このページは実際に動く一部です。完全版には以下がすべて含まれます。
검로드 1리스팅 · 5개국어 상세 · ★소유 · 전체 깊이 · 오프라인 · 기계가 먹는 파일 · 가격=⛔상수 금지 — ★측정된 경쟁 밴드(L4)
受け取る