Menu
CoddyTech

مراجعة: أقرب عنصر ضمن النطاق

جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 11 من 64.

استخدم هذا الفصل الواجهات لكي يتمكن نص برمجي واحد من العمل مع أشياء لا تشترك في شيء سوى طريقة. يختار مفتاح التفاعل الآن أقربها.

challenge icon

التحدي

سهل

يجب أن يستخدم Space أقرب شيء، لا أول شيء.

  1. في Interactor، أضف قبل الحلقة IInteractable nearest = null; وfloat best = Mathf.Infinity;.
  2. في الحلقة، احتفظ بأي شيء تكون قيمة Vector3.Distance بينه وبين اللاعب أقل من best، مع مسافته.
  3. بعد الحلقة، استدعِ nearest.Interact() إذا لم تكن قيمة nearest تساوي null.

اضغط على «العب»، وقف بين الصندوق والرافعة واضغط على Space: ستُسحب الرافعة. ثم اضغط على «تحقق».

جرّب بنفسك

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

تدرّب بنفسك: Playground لـ Unity