الدخول والخروج
جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 20 من 71.
يرسل المُحفِّز رسالتين إضافيتين. تعمل 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 للمُصادِم نفسه.
التحدي
سهلأضئ المصباح ما دام هناك أي شيء في منطقة التحميل.
- أضف حقلًا
int inBay;. فيStart()، عيّنlamp.enabled = false;. - في
OnTriggerEnter، أضف 1 إلىinBayوعيّنlamp.enabled = true;. - في
OnTriggerExit، اطرح 1 منinBay، وأطفئ المصباح فقط عندما تصبح قيمته 0.
اضغط على «العب» وادفع الصناديق إلى الداخل والخارج: سيبقى المصباح مضاءً حتى تصبح منطقة التحميل فارغة. ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
public class LoadingBay : MonoBehaviour
{
public Light lamp;
// يظل المصباح مضاءً ما دام هناك شيء في منطقة التحميل، وينطفئ عندما تكون فارغة
}
جميع دروس الفيزياء وأسلوب اللعب
1الجسم الصلب (Rigidbody)
الجاذبية والكتلةالدفع باستخدام AddForceالقفز باستخدام دفعةFixedUpdate للفيزياءالسرعة المتجهةالأجسام الحركيةمراجعة: منصة الإطلاق4الكوروتينات
InvokeInvokeRepeating, CancelInvokeأول Coroutine لكالحلقات داخل الكوروتيناتإيقاف الكوروتيناتمراجعة: العد التنازلي10المشروع: الهروب من الحلبة
الحلبةالصيادونتدرّب بنفسك: Playground لـ Unity