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

حطّم

الدرس 6 من 16 في دورة لعبة Unity: تحطيم الطوب على Coddy.

لا تحتوي الطوب على مكوّن Rigidbody، لكن الكرة تحتوي عليه، ويرسل Unity رسالة OnCollisionEnter إلى كلا الجسمين عند حدوث تصادم. لذا يمكن للطوبة أن تلاحظ الاصطدام بنفسها. في سكربت الطوبة، يشير gameObject إلى الطوبة، بينما يشير collision.gameObject إلى الجسم الذي اصطدم بها.

تعود النقاط إلى GameManager، والطوب نسخ من أصل جاهز (prefab). الأصل الجاهز هو مورد خارج المشهد، لذا لا يمكن لحقوله الإشارة إلى GameManager الموجود في المشهد عبر Inspector. يعيّن GameManager القيمة الثابتة GameManager.Instance لنفسه في Awake()، وبذلك يمكن لأي سكربت الوصول إليه، بما في ذلك نسخ الأصل الجاهز.

مزهرية تتحطم عندما يصطدم بها اللاعب أثناء الركض:

void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.CompareTag("Player")) Shatter();
}

public void Shatter()
{
    Destroy(gameObject);
}

تزيل Destroy(gameObject) المزهرية. أما Destroy(collision.gameObject) فستزيل اللاعب، وDestroy(this) تزيل السكربت فقط، وتترك المزهرية قائمة. إن إبقاء عملية التحطيم في دالتها العامة الخاصة يعني أن الشيفرات الأخرى، مثل قنبلة أو تعزيز قوة، يمكنها تحطيم المزهرية أيضًا.

challenge icon

التحدي

متوسط
  1. في GameManager، أضف int score وpublic void BrickBroken(Brick brick)، بحيث تضيف points الخاص بالطوبة إلى score.
  2. في Brick، اكتب public void Hit(): تُعلِم GameManager.Instance بأن هذه الطوبة قد تحطمت، ثم تدمّر الطوبة.
  3. أضف OnCollisionEnter إلى Brick: عندما يصطدم به الكائن الموسوم بـ Ball، استدعِ Hit().

اضغط على Play، وحطّم بعض الطوب، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Brick : MonoBehaviour
{
    public int points = 10;

    // التالي: تكسر الكرة طوبةً وتُحرز نقاطها.
}
quiz iconاختبر نفسك

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

جميع دروس لعبة Unity: تحطيم الطوب