Menu
CoddyTech
flag Ar iconالعربيةdown icon

OverlapSphere وSphereCast

جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 38 من 63.

يسأل الشعاع عن خط. تسأل Physics.OverlapSphere(center, radius) عن منطقة كروية الشكل: فهي تُرجع مصفوفة بكل مُصادم يلامس كرة مركزها center، من دون اتجاه أو مسافة. تدمر هذه القنبلة كل صندوق ضمن 3 وحدات عند انفجارها:

void Explode()
{
    Collider[] hits = Physics.OverlapSphere(transform.position, 3f);
    foreach (Collider c in hits)
    {
        if (c.CompareTag("Crate"))
        {
            Destroy(c.gameObject);
        }
    }
    Destroy(gameObject);
}

تحتوي المصفوفة على كل ما يقع في النطاق: الأرضية والجدران ومُصادم القنبلة نفسها، لأن اختبارات التداخل لا تتجاهل المُصادم الذي تبدأ من داخله. لذلك تتحقق الحلقة من الوسم قبل اتخاذ أي إجراء. يشير attachedRigidbody لكل مُصادم إلى الجسم الصلب (Rigidbody) الذي يتبعه، أو إلى null للأشياء الثابتة مثل الأرضية.

إن Physics.SphereCast(origin, radius, direction, out hit, maxDistance) هو شعاع سميك: فهو يمسح كرة على طول الخط ويُبلغ عن أول مُصادم كانت الكرة ستصطدم به. تستخدم صخرة نصف قطرها 1 وتتدحرج نحو فجوة عرضها 1.5 بين دعامتين هذه الطريقة لمعرفة ما إذا كانت ستعبر: لا يصطدم شعاع رفيع يمر بمنتصف الفجوة بأي شيء، بينما يصطدم مسح الكرة بإحدى الدعامتين. ومثل الشعاع، يتجاهل مسح الكرة المُصادمات التي تلامسها بالفعل عند نقطة بدايتها.

challenge icon

التحدي

متوسط

جهّز المدفع بحزمة واسعة. يوجد النص البرمجي Beam على المدفع، ويمنحه Inspector قيمة radius تساوي 0.5 وrange تساوي 12. يحرّك السهمان الأيسر والأيمن المدفع.

  • عند الضغط على Space، امسح كرة نصف قطرها radius إلى الأمام من المدفع، بطول range وحدة.
  • إذا أصابت شيئًا، سجّل Hit Pole مع اسم ما أصابته، ودمّر ذلك الكائن.
  • إذا لم تصب شيئًا، سجّل Miss.

يقف العمود الرفيع إلى جانب خط مركز المدفع بقليل. اضغط Play وأطلق النار، ثم اضغط Check.

جرّب بنفسك

using UnityEngine;

public class Beam : MonoBehaviour
{
    public float radius = 0.5f;
    public float range = 12f;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // امسح بمسح كرة نصف قطرها radius إلى الأمام: دمّر أول شيء تصطدم به.
        }
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الفيزياء وأسلوب اللعب