مراجعة: أقرب عنصر ضمن النطاق
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 11 من 64.
استخدم هذا الفصل الواجهات لكي يتمكن نص برمجي واحد من العمل مع أشياء لا تشترك في شيء سوى طريقة. يختار مفتاح التفاعل الآن أقربها.
التحدي
سهليجب أن يستخدم Space أقرب شيء، لا أول شيء.
- في
Interactor، أضف قبل الحلقةIInteractable nearest = null;وfloat best = Mathf.Infinity;. - في الحلقة، احتفظ بأي شيء تكون قيمة
Vector3.Distanceبينه وبين اللاعب أقل منbest، مع مسافته. - بعد الحلقة، استدعِ
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;
}
}
}
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس هندسة الألعاب في Unity
1المكوّنات، لا التسلسلات الهرمية
مكوّنات صغيرةنص برمجي أساسي للعدومكوّنات مجرّدةالمكوّنات تعمل معًامراجعة: برج معياريمراجعة: مدفع مزدوج4البيانات المُسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائممراجعة: اختيار الغنائم عشوائيًا2الواجهات في Unity
IDamageableالواجهات وTryGetComponentGetComponentsمراجعة: مفتاح التفاعلمراجعة: أقرب عنصر ضمن النطاقتدرّب بنفسك: Playground لـ Unity