Menu
CoddyTech

OverlapSphere وSphereCast

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

يسأل الشعاع عن خط. أما 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

التحدي

متوسط

امنح المدفع شعاعًا عريضًا باستخدام Physics.SphereCast.

  1. عند الضغط على Space، امسح المساحة بكرة: Physics.SphereCast(transform.position, radius, transform.forward, out RaycastHit hit, range).
  2. عند إصابة هدف، سجّل "Hit " + hit.collider.name (تسجّل الطلقة الأولى Hit Pole) ودمّر ذلك الكائن.
  3. عند الإخفاق، سجّل Miss.

اضغط على «العب» وأطلق ثلاث مرات: يختفي العمود، ثم الصندوق، ثم يحدث إخفاق. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

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

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

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

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