סיכום: הקרוב ביותר בטווח
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 11 מתוך 64.
בפרק הזה השתמשנו בממשקים כדי שסקריפט אחד יוכל לעבוד עם דברים שאין להם דבר במשותף מלבד מתודה. מקש האינטראקציה בוחר עכשיו את הקרוב ביותר מביניהם.
אתגר
קללחיצה על מקש הרווח צריכה להפעיל את הדבר הקרוב ביותר, ולא את הראשון.
- ב־
Interactor, לפני הלולאה, הוסףIInteractable nearest = null;וגםfloat best = Mathf.Infinity;. - בלולאה, שמור כל דבר שהמרחק
Vector3.Distanceשלו מהשחקן קטן מ־best, יחד עם המרחק שלו. - אחרי הלולאה, קרא ל־
nearest.Interact()אםnearestאינו null.
לחץ על „שחק”, עמוד בין התיבה למנוף ולחץ על מקש הרווח: המנוף נמשך. לאחר מכן לחץ על „בדיקה”.
נסו בעצמכם
using UnityEngine;
using UnityEngine.InputSystem;
// לחיצה על Space מפעילה אינטראקציה עם הדבר הראשון שנמצא בטווח.
public class Interactor : MonoBehaviour
{
public float reach = 1.5f;
void Update()
{
if (Keyboard.current.spaceKey.wasPressedThisFrame)
{
foreach (Collider c in Physics.OverlapSphere(transform.position, reach))
{
if (c.TryGetComponent(out IInteractable thing))
{
thing.Interact();
return;
}
}
}
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity
1רכיבים, לא היררכיות
רכיבים קטניםסקריפט בסיסי לאויברכיבים מופשטיםרכיבים שפועלים יחדחזרה: צריח מודולריחזרה: תותח כפול4נתונים שעברו סריאליזציה
מחלקות שניתנות לסריאליזציהרשימות ב־Inspectorטיפוסי Enum ב־Inspectorחזרה: טבלת שללהגרלת השלל2ממשקים ב-Unity
IDamageableממשקים ו-TryGetComponentGetComponentsסיכום: מקש אינטראקציהסיכום: הקרוב ביותר בטווחתרגלו בעצמכם: Unity אונליין