التدمير
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 67 من 85.
تزيل Destroy(obj) كائنًا من نوع GameObject من المشهد، بما في ذلك العناصر التابعة. تؤخر الوسيطة الثانية الإزالة: تزيل Destroy(obj, 2f) الكائن بعد ثانيتين من الآن، ويواصل النص البرمجي الذي استدعاها التنفيذ فورًا. يطلق هذا المدفع النار عند الضغط على Space، ويُزال كل مقذوف يصنعه بعد ثانيتين:
public GameObject bulletPrefab;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
GameObject bullet = Instantiate(bulletPrefab, transform.position, Quaternion.identity);
Destroy(bullet, 2f);
}
}مرّر النسخة، لا العنصر النائب: يُرفض Destroy(bulletPrefab) مع الرسالة Destroying assets is not permitted to avoid data loss. ومرّر كائنًا من نوع GameObject عندما تقصد الكائن نفسه. داخل النص البرمجي، يشير gameObject إلى الكائن الذي يوجد عليه النص البرمجي، لذا فإن Destroy(gameObject) يزيل ذلك الكائن، بينما تزيل Destroy(this) النص البرمجي وحده وتُبقي الكائن قائمًا.
لا يحدث التدمير على الفور. تزيل Unity الكائن في نهاية الإطار الحالي، بعد استدعاءات Update() وLateUpdate() الخاصة بالإطار، لذا تستمر الأسطر التي تأتي بعد Destroy في التنفيذ، ويظل من الممكن العثور على الكائن حتى ينتهي الإطار.
التحدي
متوسطأزل العملات القديمة، واجعل مفتاح المسافة يزيل المزلق.
- احتفظ بالعملة الجديدة،
GameObject coin = Instantiate(...);، ثم استدعِDestroy(coin, 3f);. - عند
Input.GetKeyDown(KeyCode.Space)، استدعِDestroy(gameObject);. سيؤديDestroy(this)إلى إزالة النص البرمجي فقط.
اضغط على «العب»: تختفي كل عملة بعد 3 ثوانٍ، ويوقف مفتاح المسافة ظهور عملات جديدة. ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
public class CoinChute : MonoBehaviour
{
public GameObject coinPrefab;
public float interval = 1f;
float timer;
void Update()
{
timer += Time.deltaTime;
if (timer >= interval)
{
Instantiate(coinPrefab, transform.position, Quaternion.identity);
timer -= interval;
}
// Space: دمّر المزلقة
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity