المراجع أفضل من البحث
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 45 من 67.
يمكن للبرنامج النصي الوصول إلى كائن آخر بأربع طرق: حقل تُعيّن قيمته في Inspector، أو البحث عن GameObject.Find بالاسم، أو البحث باستخدام وسم، أو البحث عن FindAnyObjectByType حسب النوع. بالنسبة إلى كائن موجود في المشهد منذ البداية، تستخدم شيفرة Unity حقل Inspector، وذلك لثلاثة أسباب:
- السرعة. يُملأ المرجع قبل بدء اللعبة. يمر كل بحث عبر كائنات المشهد، والبحث في
Update()يفعل ذلك في كل إطار. - الأمان. يتعطل الاسم المكتوب في سلسلة نصية عندما يعيد أحدهم تسمية الكائن: تُرجع Find القيمة
null، ويظهر الخطأ لاحقًا عند السطر الذي يستخدمه. أما حقل Inspector الفارغ فيؤدي إلى UnassignedReferenceException، الذي يذكر اسم الحقل والبرنامج النصي. - الوضوح. يعرض Inspector ما يعتمد عليه البرنامج النصي. أما استدعاء Find فيخفي ذلك داخل الشيفرة.
// يُعيَّن مرة واحدة في Inspector: لا حاجة إلى البحث، وتغيير الاسم لا يؤثر في شيء
[SerializeField] private Transform door;
// يُبحث عنه في كل إطار، وتصبح قيمته null بعد تغيير اسم الباب
void Update()
{
Transform d = GameObject.Find("Door").transform;
}للبحث استخداماته: مع الكائنات التي لا تظهر إلا عند تشغيل اللعبة، مثل كائن يُنشأ أثناء اللعب، ومع البرامج النصية التي يجب أن تعمل في أي مشهد. وحتى في هذه الحالة، ابحث مرة واحدة في Start() واحتفظ بالنتيجة في حقل.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر8العثور على الأشياء
البحث بالاسمالوسومالبحث حسب النوعالمراجع أفضل من البحثNull في Unityمراجعة: أقرب عملة