إضافة مكوّن
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 32 من 67.
تضيف gameObject.AddComponent<T>() مكوّنًا جديدًا من النوع T إلى الكائن أثناء تشغيل اللعبة، وتعيده لتتمكن من إعداده في الأسطر التالية. ينتمي المكوّن إلى GameObject، الذي يصل إليه البرنامج النصي عبر gameObject. تُصدر هذه النار ضوءًا برتقاليًا دافئًا عند بدء اللعبة:
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}يظل المكوّن المضاف بهذه الطريقة موجودًا ما دامت اللعبة قيد التشغيل. أوقف وضع Play وسيعود الكائن إلى الحالة المحفوظة في المشهد، من دون Light. برامجك النصية الخاصة هي مكوّنات أيضًا: تضيف gameObject.AddComponent<Spinner>() مكوّن Spinner يبدأ بالتشغيل مثل أي برنامج نصي آخر.
يمكن إضافة معظم المكوّنات أكثر من مرة، لكن بعضها لا يمكن إضافته كذلك: لا يحتوي الكائن إلا على Rigidbody واحد كحد أقصى، وطلب إضافة واحدٍ ثانٍ يؤدي إلى ظهور خطأ في Console بدلًا من ذلك. يتحقق الكود الذي قد يُنفَّذ أكثر من مرة مما إذا كان الكائن يحتوي على المكوّن بالفعل قبل إضافته.
التحدي
متوسطتتدلّى ثمرة جوز الهند على شجرة النخيل. يؤدي الضغط على Space إلى هزّ الشجرة: تحصل ثمرة جوز الهند على Rigidbody، فتسحبها الجاذبية وتسقط على الرمال.
- قبل الضغط على Space للمرة الأولى، تظلّ ثمرة جوز الهند معلّقة في مكانها.
- تضيف Space مكوّن Rigidbody فقط عندما لا يكون لدى ثمرة جوز الهند واحد بعد، لذا لا تفعل الضغطات اللاحقة شيئًا.
اضغط على Play، ثم اضغط على Space، ثم Check.
جرّب بنفسك
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space: أضف Rigidbody إذا لم تكن لدى جوزة الهند واحدة بعد
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر