表示テーマ
UIProgress Component
体力や進行度などの値をバーとして表示します。
設定する手順
- 範囲と値、塗り方向、即時・補間・遅延表示を設定します。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
| 項目 | C#名 | 型 | 操作 | 定義時の初期値 | 意味 |
|---|---|---|---|---|---|
| 有効 | Enabled | bool | 読取・変更 | true | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| 編集中にプレビュー | PreviewInEditMode | bool | 読取・変更 | false | Play前のEditorでも状態を確認します。 |
| 最小値 | MinValue | float | 読取・変更 | 0.0f | 表示値の下限です。 |
| 最大値 | MaxValue | float | 読取・変更 | 1.0f | 表示値の上限です。 |
| 現在値 | Value | float | 読取・変更 | 1.0f | 現在の値です。 |
| Direction | Direction | UIProgressFillDirection | 読取・変更 | UIProgressFillDirection::LeftToRight | 光などが進む方向です。長さより向きを指定します。 |
| 補間する | Smooth | bool | 読取・変更 | true | 値を補間して表示します。 |
| 補間時間 | SmoothDuration | float | 読取・変更 | 0.15f | 値の補間秒数です。 |
| 遅延表示する | Delayed | bool | 読取・変更 | false | 遅れて追従する表示を使います。 |
| 遅延テクスチャ | DelayedTexture | Texture? | 読取・変更 | {} | 遅延表示に使うTextureです。 |
| 待機時間 | DelayedWait | float | 読取・変更 | 0.2f | 遅延表示が動き始めるまでの秒数です。 |
| 遅延時間 | DelayedDuration | float | 読取・変更 | 0.35f | 遅延表示が追いつくまでの秒数です。 |
| 非スケール時間 | UseUnscaledTime | bool | 読取・変更 | true | TimeScaleの影響を受けない時間で進めます。 |
| DelayedTargetLocalFileID | DelayedTargetLocalFileID | GameObject? | 読取・変更 | {} | 遅延表示先GameObjectの保存用IDです。 |
| SmoothEasing | SmoothEasing | EasingType | 読取・変更 | EasingType::EaseOutSine | 値補間のEasingです。 |
| DelayedEasing | DelayedEasing | EasingType | 読取・変更 | EasingType::EaseOutSine | 遅延追従のEasingです。 |
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| 最小・最大・現在値・方向 | Editor / C# | MinValue / MaxValue / Value / Direction / Enabled | HPなどの数値を最小〜最大の割合へ変換して、指定方向から満たす表示です。画像のMaterialや描画対象も用意します。 |
| 補間・遅延表示 | Editor / C# | Smooth / SmoothDuration / SmoothEasing / Delayed / DelayedTexture / DelayedWait / DelayedDuration / DelayedEasing | 通常の表示を追い付かせる補間と、ダメージ後に遅れて減る表示を別々に調整します。遅延Textureはその見た目、Waitは動き始めるまでの秒数です。 |
| 非スケール時間・編集時Preview | Editor / C# | UseUnscaledTime / PreviewInEditMode | TimeScaleの影響を受けないUI進行と、Play前のPreviewを指定します。実行中の現在値と保存された初期値を区別します。 |
| 表示中の割合・遅延先 | C#のみ | DisplayedNormalizedValue / DelayedNormalizedValue / DelayedTargetLocalFileID | 補間後の表示割合は取得用です。遅延先はGameObject参照として扱い、保存用IDをゲームコードで直接組み立てません。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はUIProgressです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
実用例:ダメージでHPバーを減らす
UIProgressのあるGameObjectへ追加し、ApplyDamage(amount)をゲーム側の被弾処理から呼びます。補間と遅延表示も設定します。
cs
using NEMEngine;
public sealed class HealthBar : MonoBehaviour {
[SerializeField, Min(1.0f)] private float maxHP = 100.0f;
private UIProgress? bar;
private float hp;
void Start() {
// HPの範囲と、通常・遅延表示の補間を用意
bar = GetComponent<UIProgress>();
hp = maxHP;
if (bar == null) return;
bar.MinValue = 0.0f;
bar.MaxValue = maxHP;
bar.Smooth = true;
bar.SmoothDuration = 0.15f;
bar.Delayed = true;
bar.DelayedWait = 0.25f;
bar.DelayedDuration = 0.4f;
bar.Value = hp;
}
public void ApplyDamage(float amount) {
// 被弾時の値を範囲内に収め、バーへ反映
hp = Mathf.Clamp(hp - MathF.Max(0.0f, amount), 0.0f, maxHP);
if (bar != null) bar.Value = hp;
}
}選択値(Enum)
| 型・各値の詳説 | 使える値 |
|---|---|
| EasingType | 27件。型のページで全候補を確認できます。 |
| UIProgressFillDirection | BottomToTop / LeftToRight / RightToLeft / TopToBottom |
UIProgress
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public bool Delayed | プロパティ(読取・変更) | 遅れて追従する表示を使います。 |
public float DelayedDuration | プロパティ(読取・変更) | 遅延表示が追いつくまでの秒数です。 |
public EasingType DelayedEasing | プロパティ(読取・変更) | 遅延追従のEasingです。 |
public float DelayedNormalizedValue | プロパティ(読取専用) | 遅延表示側の現在値 |
public GameObject? DelayedTargetLocalFileID | プロパティ(読取・変更) | 遅延表示先GameObjectの保存用IDです。 |
public Texture? DelayedTexture | プロパティ(読取・変更) | 遅延表示に使うTextureです。 |
public float DelayedWait | プロパティ(読取・変更) | 遅延表示が動き始めるまでの秒数です。 |
public UIProgressFillDirection Direction | プロパティ(読取・変更) | 光などが進む方向です。長さより向きを指定します。 |
public float DisplayedNormalizedValue | プロパティ(読取専用) | 補間後の現在表示値 |
public bool Enabled | プロパティ(読取・変更) | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
public static UIProgress FromEntity(GameObject gameObject) | 関数 | 既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。 |
public float MaxValue | プロパティ(読取・変更) | 表示値の上限です。 |
public float MinValue | プロパティ(読取・変更) | 表示値の下限です。 |
public bool PreviewInEditMode | プロパティ(読取・変更) | Play前のEditorでも状態を確認します。 |
public bool Smooth | プロパティ(読取・変更) | 値を補間して表示します。 |
public float SmoothDuration | プロパティ(読取・変更) | 値の補間秒数です。 |
public EasingType SmoothEasing | プロパティ(読取・変更) | 値補間のEasingです。 |
public bool UseUnscaledTime | プロパティ(読取・変更) | TimeScaleの影響を受けない時間で進めます。 |
public float Value | プロパティ(読取・変更) | 現在の値です。 |
public static int componentTypeID | プロパティ(読取専用) | 組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。 |
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
遅延先のGameObject参照が正しいか確認します。値の範囲と画像UVを合わせます。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。