+
*
+
ココ先生
ゲーム開発の案内役
この記事では ローディング進行表示 を、読んで終わりにせず、拠点にいるチーム数から、制圧ゲージとオーバータイムを動かします。
+
*
+
はじめちゃん
ゲームエンジン学習中
拠点制圧とオーバータイムを見失わせない目標UI設計ガイド を読む前に、まずUnity のどこを見ればよいかを確認したいです。
拠点にいるチーム数から、制圧ゲージとオーバータイムを動かします。
両チームが入った時だけOVERTIMEを出せばよいのですね。
Triggerで人数を数え、Image.fillAmountとラベルを更新します。

完成イメージ
制圧率を動かす
拠点内のチーム数からBlueFillとRedFillの量を更新します。
競合を見つける
青と赤の両方が入った時は制圧率を止めます。
OVERTIMEを表示
競合中だけラベルを出し、延長戦だと伝えます。
導入
拠点の上に制圧ゲージを出し、両チームが入るとオーバータイムの色へ変えるUIを作ります。
これから作るもの
- CapturePoint に Trigger Collider を付けます。
- 子Canvasに Image の
BlueFill、RedFill、TMPのOvertimeLabelを置きます。
ステップ1: ゲージを増やす
[SerializeField] Image blueFill, redFill; [SerializeField] TMP_Text overtimeLabel;
float progress; int blueInside, redInside;
void Update() {
bool contested=blueInside>0 && redInside>0;
if (!contested && blueInside>0) progress=Mathf.MoveTowards(progress,1,Time.deltaTime*.2f);
if (!contested && redInside>0) progress=Mathf.MoveTowards(progress,-1,Time.deltaTime*.2f);
}
ステップ2: 色とオーバータイムを描く
void RefreshUi() {
blueFill.fillAmount=Mathf.Max(0,progress); redFill.fillAmount=Mathf.Max(0,-progress);
bool overtime=blueInside>0 && redInside>0;
overtimeLabel.gameObject.SetActive(overtime); overtimeLabel.text=overtime ? "OVERTIME" : "";
}
完成版
using UnityEngine; using UnityEngine.UI; using TMPro;
public class CapturePointUi : MonoBehaviour { [SerializeField] Image blueFill,redFill; [SerializeField] TMP_Text overtimeLabel; float progress; int blueInside,redInside;
void Update(){bool c=blueInside>0&&redInside>0;if(!c&&blueInside>0)progress=Mathf.MoveTowards(progress,1,Time.deltaTime*.2f);if(!c&&redInside>0)progress=Mathf.MoveTowards(progress,-1,Time.deltaTime*.2f);blueFill.fillAmount=Mathf.Max(0,progress);redFill.fillAmount=Mathf.Max(0,-progress);overtimeLabel.gameObject.SetActive(c);}
void OnTriggerEnter(Collider o){if(o.CompareTag("Blue"))blueInside++;if(o.CompareTag("Red"))redInside++;} void OnTriggerExit(Collider o){if(o.CompareTag("Blue"))blueInside--;if(o.CompareTag("Red"))redInside--;}}
ゲージを止める条件は何ですか?
青と赤の両方が拠点内にいる時はcontestedとして進行を止めます。
流れは「読み込み開始を表示」から始めて、「Load Buttonで進める」で操作を入れる、と覚えればよいですか?
その通りです。その後に「進行率更新を確認」で途中状態を見て、「完了を伝えるで結果を見る」で結果を確認します。順番を固定すると、失敗した場所も見つけやすくなります。
つまり、いきなり完成システムにせず、状態名、表示、値の変化を小さくそろえるのですね。
はい。最後は「ローディング進行表示をわかりやすく考える」の考え方で、難しい処理をプレイヤーに伝わる短い合図へ置き換えられるか確認しましょう。
この記事のまとめ
進行バー、占領状態、得点差、延長条件を読みやすく整えて、ルール理解不足による不満を減らす設計を整理します。
大きな違いを生むのは、派手な性能よりも 毎日触れる環境を無理なく整えること です。見やすい画面と使いやすい道具がそろうと、学習や次の一歩を決めやすくなります。