Menu
CoddyTech

Ripasso: FindNearest

Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 36 di 50.

challenge icon

Sfida

Medio

Un robot addetto alle pulizie raccoglie gemme, poi va a ricaricarsi. Gem e ChargePad sono script marcatore vuoti (pronti), e il robot ha MoveTo(point), che lo sposta verso un punto alla velocità speed e restituisce true una volta arrivato.

  • In Helpers.cs, scrivi una classe statica Helpers con un metodo generico FindNearest<T>(IEnumerable<T> items, Vector3 from) per qualsiasi tipo di componente. Restituisce l'elemento la cui posizione è più vicina a from, oppure null quando non ci sono elementi.
  • In Robot.cs, a ogni frame il robot si dirige verso la gemma più vicina nella scena, partendo da dove si trova, e distrugge la gemma quando la raggiunge.
  • Quando non rimangono gemme, il robot si dirige verso il ChargePad più vicino. All'arrivo registra Charging una volta e resta lì.

Usa FindNearest sia per le gemme sia per le piattaforme. Premi Play, osserva il robot, poi Check.

Provalo tu

using System.Collections.Generic;
using UnityEngine;

// Helpers.FindNearest<T>: l'elemento più vicino a un punto, oppure null

Tutte le lezioni di Architettura dei giochi in Unity