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

الإظهار والإخفاء

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 34 من 67.

يُوقف SetActive(false) كائنَ GameObject بالكامل: فلا يُرسم، ولا يعود يصطدم، وتتوقف السكربتات الموجودة عليه عن تلقي استدعاءات Update()، كما تتوقف الكائنات الأبناء معه. يعيد SetActive(true) كل شيء، ويُبيّن activeSelf ما إذا كان مفعّلًا. يخفي هذا السكربت الموجود على زر الباب في الحقل door عند النقر بزر الفأرة:

public GameObject door;

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        door.SetActive(false);
    }
}

لا يستطيع سكربت يخفي كائنه بنفسه باستخدام gameObject.SetActive(false) إعادته، لأن Update() لم يعد يُنفّذ. لذا يكون المفتاح على كائن آخر، مع مرجع إلى الكائن الذي يُظهره ويخفيه.

يُعطّل enabled مكوّنًا واحدًا ويترك بقية الكائن كما هي. تجعل GetComponent<Renderer>().enabled = false الكائن غير مرئي، لكن المصادم الخاص به يظل يعيق الأشياء: كجدار غير مرئي. لا يتلقى السكربت الذي ضُبطت له enabled = false أي استدعاءات أخرى لـ Update()، لكن الكائن يبقى في المشهد، ويظل مرئيًا ويصطدم بالأشياء، وتستمر مكوّناته الأخرى في العمل.

challenge icon

التحدي

متوسط

يحتفظ البرنامج النصي للرافعة بالجسر في الحقل bridge. اجعل مفتاح المسافة يتحكم في الجسر: الضغطة الأولى تخفيه، والضغطة التالية تعيده، وهكذا، فتبديل واحد مع كل ضغطة.

أخفِ الجسر بأكمله، بما في ذلك المصادم، حتى لا يستطيع أحد الوقوف على جسر غير موجود.

اضغط على Play، واضغط على مفتاح المسافة بضع مرات، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class BridgeSwitch : MonoBehaviour
{
    public GameObject bridge;

    void Update()
    {
        // يُخفي الضغط على Space الجسر، ويُظهره الضغط التالي مرة أخرى
    }
}
quiz iconاختبر نفسك

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

جميع دروس أساسيات البرمجة النصية في Unity