Menu
CoddyTech

الحصول على مكوّن

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

‏GameObject هو حاوية تضم مكوّنات: مكوّن Transform، ومكوّن MeshRenderer الذي يرسمه، ومصادم، والبرامج النصية الخاصة بك. يعيد GetComponent<Renderer>() المكوّن من ذلك النوع الموجود على الكائن نفسه، ومن خلاله يغيّر برنامجك النصي ما يفعله هذا المكوّن. يُعدّ transform اختصارًا جاهزًا لمكوّن Transform؛ أما كل مكوّن آخر فعليك جلبه بنفسك.

يتحول هذا المكعب إلى اللون الأحمر عند الضغط على Space. يبحث عن مكوّن Renderer مرة واحدة في Start()، ويحتفظ به في حقل: يبحث GetComponent في مكوّنات الكائن في كل مرة يُستدعى فيها، والنتيجة لا تتغير.

Renderer rend;

void Start()
{
    rend = GetComponent<Renderer>();
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        rend.material.color = Color.red;
    }
}

يعطي rend.material هذا الكائن نسخته الخاصة من مادته في المرة الأولى التي تستخدمه فيها، لذلك تحتفظ الكائنات الأخرى التي تشاركت المادة بلونها. يوفّر Unity أسماءً لبعض الألوان، مثل Color.red وColor.green وColor.blue وColor.yellow وColor.gray؛ أما new Color(r, g, b) فينشئ أي لون آخر، بحيث تكون قيمة كل جزء من 0 إلى 1.

challenge icon

التحدي

متوسط

مع كل نقرة، ينتقل ضوء الإشارة إلى اللون التالي: الأحمر، ثم الأصفر، ثم الأخضر، ثم الأحمر مجددًا.

  1. أضف حقلًا من النوع Renderer rend; واضبطه في Start() باستخدام GetComponent<Renderer>().
  2. عند Input.GetMouseButtonDown(0)، أضف 1 إلى الحقل int step، وأعده إلى 0 عندما يصل إلى 3.
  3. اضبط rend.material.color على Color.red أو Color.yellow أو Color.green للخطوات 0 أو 1 أو 2.

اضغط على «العب» وانقر على اللعبة: سيتغير لون الضوء. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class SignalLight : MonoBehaviour
{

    void Start()
    {
    }

    void Update()
    {
        // مع كل نقرة: أحمر، ثم أصفر، ثم أخضر، ثم أحمر مجددًا
    }
}

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

تدرّب بنفسك: Playground لـ Unity