Menu
CoddyTech

סיכום: הקרוב ביותר בטווח

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

בפרק הזה השתמשנו בממשקים כדי שסקריפט אחד יוכל לעבוד עם דברים שאין להם דבר במשותף מלבד מתודה. מקש האינטראקציה בוחר עכשיו את הקרוב ביותר מביניהם.

challenge icon

אתגר

קל

לחיצה על מקש הרווח צריכה להפעיל את הדבר הקרוב ביותר, ולא את הראשון.

  1. ב־Interactor, לפני הלולאה, הוסף IInteractable nearest = null; וגם float best = Mathf.Infinity;.
  2. בלולאה, שמור כל דבר שהמרחק Vector3.Distance שלו מהשחקן קטן מ־best, יחד עם המרחק שלו.
  3. אחרי הלולאה, קרא ל־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;
                }
            }
        }
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

תרגלו בעצמכם: Unity אונליין