+
*
+
ココ先生
ゲーム開発の案内役
この記事では 戦利品の希少度と拾いどころを伝える視認性設計ガイド を、読んで終わりにせず、戦利品の希少度を光柱の色で示し、近づいた時だけ拾う表示を出します。
+
*
+
はじめちゃん
ゲームエンジン学習中
戦利品の希少度と拾いどころを伝える視認性設計ガイド を読む前に、まずUnity のどこを見ればよいかを確認したいです。
戦利品の希少度を光柱の色で示し、近づいた時だけ拾う表示を出します。
遠くからでも良い物か分かり、近づくと操作が出るのですね。
希少度で色を選び、Playerとの距離でPickupPromptを切り替えます。

完成イメージ
希少度を光で出す
RarityBeamの色を希少度ごとに切り替えます。
近づいた時だけ表示
Playerとの距離でPickup Promptを表示します。
拾う処理へ進む
範囲内でEを押した時だけ対象を回収します。
導入
戦利品の足元に希少度の光柱を出し、近づくと拾うキーの表示を出します。
これから作るもの
Lootの子にParticle Systemの RarityBeam、World Space Canvasの PickupPrompt を置きます。
ステップ1: 希少度ごとの色を決める
Color RarityColor(){ return rarity==3?new Color(1,.6f,0):rarity==2?Color.magenta:Color.cyan; }
ステップ2: 距離で拾う表示を切り替える
void Update(){ bool near=Vector3.Distance(player.position,transform.position)<=pickupRange; prompt.SetActive(near); beam.startColor=RarityColor(); if(near&&Input.GetKeyDown(KeyCode.E)) PickUp(); }
完成版
using UnityEngine; public class LootVisibility:MonoBehaviour { [SerializeField] Transform player; [SerializeField] ParticleSystem beam; [SerializeField] GameObject prompt; [SerializeField] int rarity; [SerializeField] float pickupRange=2f; Color C()=>rarity==3?new Color(1,.6f,0):rarity==2?Color.magenta:Color.cyan; void Update(){beam.startColor=C();bool n=Vector3.Distance(player.position,transform.position)<=pickupRange;prompt.SetActive(n);if(n&&Input.GetKeyDown(KeyCode.E))Destroy(gameObject);} }
拾う表示を出す条件は何ですか?
Playerと戦利品の距離がpickupRange以内の時だけ表示します。
流れは「準備状態を表示」から始めて、「Next Buttonで進める」で操作を入れる、と覚えればよいですか?
その通りです。その後に「操作中を確認」で途中状態を見て、「結果表示で結果を見る」で結果を確認します。順番を固定すると、失敗した場所も見つけやすくなります。
つまり、いきなり完成システムにせず、状態名、表示、値の変化を小さくそろえるのですね。
はい。最後は「戦利品の希少度と拾いどころを伝える視認性設計ガイドをわかりやすく考える」の考え方で、難しい処理をプレイヤーに伝わる短い合図へ置き換えられるか確認しましょう。
この記事のまとめ
色、光、音、距離表示を使って、落ちたアイテムの価値と優先度を一瞬で読ませるための設計ガイドです。
大きな違いを生むのは、派手な性能よりも 毎日触れる環境を無理なく整えること です。見やすい画面と使いやすい道具がそろうと、学習や次の一歩を決めやすくなります。