الحصول على مكوّن
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 30 من 67.
إن 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.
التحدي
متوسطيبدأ ضوء الإشارة باللون الأحمر. تنقله كل نقرة إلى اللون التالي بهذا الترتيب: الأحمر، ثم الأصفر، ثم الأخضر، ثم الأحمر مرة أخرى، وهكذا.
احصل على Renderer مرة واحدة، في Start()، واحتفظ به في حقل. استخدم Color.red وColor.yellow وColor.green.
اضغط على Play، وانقر على اللعبة بضع مرات، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// كل نقرة: أحمر، ثم أصفر، ثم أخضر، ثم أحمر مجددًا
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر