العناصر القابلة للجمع
جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 17 من 71.
الغرض القابل للالتقاط هو مُحفّز له نص برمجي خاص به. عندما يدخل شيء ما، يتحقق الغرض من أنه اللاعب، ثم يمنحه تأثيره ويدمّر نفسه. يحتفظ النص البرمجي للاعب بالنتيجة ويتيح طريقة عامة لتنفيذ ذلك. تعالج حزمة الصحة أي شيء لديه نص برمجي باسم Health:
// HealthPack.cs
public int amount = 25;
void OnTriggerEnter(Collider other)
{
if (other.TryGetComponent(out Health health) && health.hp < 100)
{
health.Heal(amount);
Destroy(gameObject);
}
}// Health.cs، على اللاعب
public int hp = 50;
public void Heal(int amount)
{
hp = Mathf.Min(hp + amount, 100);
Debug.Log("HP: " + hp);
}تكون نتيجة other.TryGetComponent(out Health health) هي false لصندوق ينزلق إلى الحزمة، لذا لا يمكن أخذها إلا بواسطة كائن لديه نص برمجي باسم Health، ويترك اللاعب الذي يتمتع بصحة كاملة الحزمة لوقت لاحق. تعثر الحزمة على اللاعب عبر other، لذا لا تحتاج أي حزمة إلى مرجع في Inspector، ويمكن للمستوى أن يحتوي على خمسين منها. إن Heal هي public لأن نصًا برمجيًا آخر يستدعيها، والحد الأقصى البالغ 100 موجود في Health، المكان الوحيد المسؤول عن hp. يزيل Destroy(gameObject) الحزمة؛ أما Destroy(other.gameObject) فسيزيل اللاعب.
التحدي
سهلاجعل صناديق الذخيرة تعيد تعبئة Blaster (ammo 4، maxAmmo 10).
- في
Blaster.cs، أضفpublic int AddAmmo(int amount):int taken = Mathf.Min(amount, maxAmmo - ammo);، وأضِف القيمة إلىammo، وسجّل"Ammo: " + ammo، ثم أعدtaken. - في
AmmoCrate.cs، عندما يتحققother.TryGetComponent(out Blaster blaster)، استدعِblaster.AddAmmo(amount);وDestroy(gameObject);.
اضغط «العب» وتحرك إلى اليمين: تعرض وحدة التحكم Ammo: 7، ثم Ammo: 10. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class AmmoCrate : MonoBehaviour
{
public int amount = 3;
void OnTriggerEnter(Collider other)
{
// يأخذ Blaster الخاص باللاعب الذخيرة، ويختفي الصندوق
}
}
جميع دروس الفيزياء وأسلوب اللعب
1الجسم الصلب (Rigidbody)
الجاذبية والكتلةالدفع باستخدام AddForceالقفز باستخدام دفعةFixedUpdate للفيزياءالسرعة المتجهةالأجسام الحركيةمراجعة: منصة الإطلاق4الكوروتينات
InvokeInvokeRepeating, CancelInvokeأول Coroutine لكالحلقات داخل الكوروتيناتإيقاف الكوروتيناتمراجعة: العد التنازلي10المشروع: الهروب من الحلبة
الحلبةالصيادونتدرّب بنفسك: Playground لـ Unity