+
*
+
ココ先生
ゲーム開発の案内役
この記事では 収集進捗とエリア探索を整理するトラッカーUI設計ガイド を、読んで終わりにせず、収集物を取った時に、合計数と地域マーカーを同時に更新します。
+
*
+
はじめちゃん
ゲームエンジン学習中
収集進捗とエリア探索を整理するトラッカーUI設計ガイド を読む前に、まずUnity のどこを見ればよいかを確認したいです。
収集物を取った時に、合計数と地域マーカーを同時に更新します。
取った場所も地図で分かるようにするのですね。
Collectで地域名を受け取り、地域ごとのImage色を変えます。
完成イメージ
取った数を増やす
Collectで合計数と地域ごとの収集数を更新します。
進捗を数字で出す
CountLabelに現在数と合計数を表示します。
地域を地図で塗る
収集済み地域のPinを水色へ変えます。
導入
収集物を取ると、右上の 3 / 10 と地図上の地域マーカーが更新されるトラッカーを作ります。
これから作るもの
CanvasにTMPの CountLabel と地域ごとのImageを置き、各収集物には Trigger Collider と Collectible を付けます。
ステップ1: 取った数を数える
public void Collect(string region) { found++; regionFound[region]++; RefreshUi(); Destroy(gameObject); }
ステップ2: 地図の地域を塗る
void RefreshUi(){ countLabel.text=$"{found} / {total}"; foreach(var pin in regionPins) pin.color=regionFound[pin.name]>0?Color.cyan:Color.gray; }
完成版
using UnityEngine; using TMPro; using UnityEngine.UI; using System.Collections.Generic;
public class RegionTracker:MonoBehaviour { [SerializeField] TMP_Text countLabel; [SerializeField] Image[] regionPins; [SerializeField] int total=10; int found; Dictionary<string,int> regionFound=new(); public void Collect(string region){found++;regionFound[region]=regionFound.GetValueOrDefault(region)+1;countLabel.text=$"{found} / {total}";foreach(var p in regionPins)p.color=regionFound.ContainsKey(p.name)?Color.cyan:Color.gray;} }
地域マーカーを塗るのはいつですか?
収集物を取った直後に、その地域の収集数を増やしてRefreshUiを呼びます。
流れは「準備状態を表示」から始めて、「Next Buttonで進める」で操作を入れる、と覚えればよいですか?
その通りです。その後に「操作中を確認」で途中状態を見て、「結果表示で結果を見る」で結果を確認します。順番を固定すると、失敗した場所も見つけやすくなります。
つまり、いきなり完成システムにせず、状態名、表示、値の変化を小さくそろえるのですね。
はい。最後は「収集進捗とエリア探索を整理するトラッカーUI設計ガイドをわかりやすく考える」の考え方で、難しい処理をプレイヤーに伝わる短い合図へ置き換えられるか確認しましょう。
この記事のまとめ
宝箱、図鑑、地域達成率を使って、探索の抜け漏れを減らしながら作業感を強めすぎない見せ方を整理します。
大きな違いを生むのは、派手な性能よりも 毎日触れる環境を無理なく整えること です。見やすい画面と使いやすい道具がそろうと、学習や次の一歩を決めやすくなります。