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

الدخول والخروج

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

يُرسل المُحفِّز رسالتين إضافيتين. تُنفَّذ OnTriggerExit(Collider other) مرة واحدة، في خطوة الفيزياء التي ينتهي فيها التداخل، أيًّا كانت طريقة انتهائه. وتُنفَّذ OnTriggerStay(Collider other) في كل خطوة فيزياء طوال مدة التداخل، بمعدل 50 مرة في الثانية افتراضيًا، مثل FixedUpdate(). وتتلقى الدوال الثلاثة Collider نفسه.

يرفع هذا التيار الهوائي الصاعد كل ما يطفو داخله، ويُبلغ عند مغادرته:

public float lift = 15f;

void OnTriggerStay(Collider other)
{
    other.attachedRigidbody.AddForce(Vector3.up * lift);
}

void OnTriggerExit(Collider other)
{
    Debug.Log(other.name + " left the updraft");
}

ينبغي تطبيق القوة في خطوة فيزياء، لذا فإن OnTriggerStay مناسب لها: يُطبَّق الدفع مرة واحدة في كل خطوة طوال بقاء الكرة في الداخل، ويتوقف لحظة مغادرتها. لا يحتوي التيار الهوائي الصاعد على Rigidbody، لذا يجب أن يمتلك كل جسم زائر واحدًا، ولا تكون قيمة attachedRigidbody أبدًا null هنا. ولتحديد مقدار القوة لكل ثانية داخل OnTriggerStay، اضرب في Time.deltaTime، وهي مدة الخطوة، 0.02، أثناء خطوة الفيزياء. ينتج عن كل زيارة استدعاء واحد لـ OnTriggerEnter، ثم لاحقًا استدعاء واحد لـ OnTriggerExit للمُصادِم نفسه.

challenge icon

التحدي

سهل

المساحة الصفراء Bay المرسومة على أرضية المستودع هي مُشغِّل، وlamp هو ضوء التحذير المثبّت على العمود بجانبها. اكتب LoadingBay بحيث يبيّن المصباح ما إذا كان هناك أي شيء في المساحة:

  • عند بدء اللعبة تكون المساحة فارغة، لذا يكون المصباح مطفأً (lamp.enabled = false).
  • ما دام هناك عنصر واحد على الأقل في المساحة، يكون المصباح مضاءً.
  • عندما يغادر آخر عنصر، ينطفئ المصباح مجددًا.

يمكن أن يكون الصندوقان واللاعب جميعًا في المساحة في الوقت نفسه، لذا فإن مغادرة أحدهم لا تعني أن المساحة أصبحت فارغة. اضغط Play وادفع الصناديق إلى الداخل والخارج باستخدام الأسهم، ثم اضغط Check.

جرّب بنفسك

using UnityEngine;

public class LoadingBay : MonoBehaviour
{
    public Light lamp;

    // يظل المصباح مضاءً ما دام هناك شيء في منطقة التحميل، وينطفئ عندما تكون فارغة
}
quiz iconاختبر نفسك

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

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