おさらい:最寄りのコイン
CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 61/85。
このまとめでは、章の内容を振り返ります。必要なときにタグで検索し、見つかったものをループで処理して、それぞれまでの距離を求めます。
チャレンジ
中級プレイヤーにコインレーダーを持たせましょう。Spaceキーを押すと、最も近いコインの名前が表示されます。
- Spaceキーを押したとき、
GameObject nearest = null;とfloat best = Mathf.Infinity;で始めます。 GameObject.FindGameObjectsWithTag("Coin")内の各コインについて、プレイヤーとの距離がbestより小さい場合に、そのコインを保持します。"Nearest coin: " + nearest.nameをログに記録します。
「プレイ」を押して移動し、Spaceキーを押します。コンソールにNearest coin: Silverと表示されます。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class CoinRadar : MonoBehaviour
{
[SerializeField] private float speed = 4f;
void Update()
{
if (Input.GetKey(KeyCode.RightArrow))
{
transform.position += new Vector3(speed * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.position -= new Vector3(speed * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.UpArrow))
{
transform.position += new Vector3(0, 0, speed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.DownArrow))
{
transform.position -= new Vector3(0, 0, speed * Time.deltaTime);
}
// Space: 最も近いコインの名前をログに出力する。
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Unityスクリプトの基礎のすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド