Menu
CoddyTech

סיכום: FindNearest

חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 36 מתוך 50.

challenge icon

אתגר

בינוני

רובוט ניקוי אוסף אבני חן, ואז הולך להיטען. Gem ו־ChargePad הם סקריפטים ריקים לסימון (מוכנים), ולרובוט יש MoveTo(point), שמתקדם לעבר נקודה במהירות speed ומחזיר true כשהוא מגיע אליה.

  • ב־Helpers.cs, כתבו מחלקה סטטית Helpers עם מתודה גנרית FindNearest<T>(IEnumerable<T> items, Vector3 from) עבור כל סוג רכיב. היא מחזירה את הפריט שמיקומו הוא הקרוב ביותר ל־from, או null כשאין פריטים.
  • ב־Robot.cs, בכל פריים הרובוט מתקדם לעבר אבן החן הקרובה ביותר בסצנה, מהמקום שבו הוא נמצא כעת, ומשמיד אותה כשהוא מגיע אליה.
  • כשלא נותרו אבני חן, הרובוט מתקדם לעבר ה־ChargePad הקרוב ביותר. כשהוא מגיע, הוא מתעד Charging פעם אחת ונשאר שם.

השתמשו ב־FindNearest גם עבור אבני החן וגם עבור משטחי הטעינה. לחצו על Play, צפו ברובוט, ואז לחצו על Check.

נסו בעצמכם

using System.Collections.Generic;
using UnityEngine;

// Helpers.FindNearest<T>: הפריט הקרוב ביותר לנקודה, או null

כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity