Menu
CoddyTech

復習:FindNearest

CoddyのUnityジャーニー「Unityにおけるゲームアーキテクチャ」セクションの一部。レッスン 36/50。

challenge icon

チャレンジ

中級

掃除ロボットは宝石を集めてから、充電しに行きます。Gem と ChargePad は空のマーカー スクリプト(準備済み)で、ロボットには MoveTo(point) があり、speed で指定した地点に向かって移動し、到着すると true を返します。

  • Helpers.cs に、任意のコンポーネント型に対応するジェネリックメソッド FindNearest<T>(IEnumerable<T> items, Vector3 from) を持つ静的クラス Helpers を作成します。このメソッドは、位置が from に最も近いアイテムを返し、アイテムがない場合は null を返します。
  • Robot.cs では、ロボットが毎フレーム、現在位置からシーン内で最も近い宝石に向かい、到着したらその宝石を破棄します。
  • 宝石がなくなったら、ロボットは最も近い ChargePad に向かいます。到着すると Charging を一度ログに記録し、その場にとどまります。

宝石とパッドの両方に FindNearest を使用します。再生を押してロボットの動きを確認し、その後確認を押します。

自分で試してみよう

using System.Collections.Generic;
using UnityEngine;

// Helpers.FindNearest<T>: ある点に最も近い要素、または null

Unityにおけるゲームアーキテクチャのすべてのレッスン