復習:FindNearest
CoddyのUnityジャーニー「Unityのゲームアーキテクチャ」セクションの一部。レッスン 45/64。
この章では、拡張メソッド、ジェネリックな基底クラス、ジェネリックなヘルパーなど、どの型でも動作するコードを書きました。ここでは、1つのジェネリック検索で宝石と充電パッドの両方を見つけます。
チャレンジ
中級ロボットを宝石のところへ最も近いものから順に向かわせ、その後、充電させましょう。
Helpers.csで、コンポーネントを対象に、最も近い項目またはnullを返す、FindNearest<T>(IEnumerable<T> items, Vector3 from)を持つ静的クラスHelpersを記述します。Robotでは、各フレームで最も近いGemへMoveToし、到着したら破棄します。- 宝石が残っていない場合は、最も近い
ChargePadへ向かい、Chargingを一度ログに記録して、その場にとどまります。
「プレイ」を押すと、ロボットが宝石を回収します。その後、「確認」を押してください。
自分で試してみよう
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T>: 点に最も近いアイテム、または null
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Unityのゲームアーキテクチャのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド