סיכום: FindNearest
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 36 מתוך 50.
אתגר
בינונירובוט ניקוי אוסף אבני חן, ואז הולך להיטען. 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
1רכיבים, לא היררכיות
רכיבים קטניםסקריפט בסיס לאויברכיבים מופשטיםרכיבים שעובדים יחדסיכום: צריח מודולרי