المراجع أفضل من Find
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 59 من 85.
يمكن للبرنامج النصي الوصول إلى كائن آخر بأربع طرق: حقل تُعيّن قيمته في 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أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم10البحث عن الأشياء
البحث بالاسمالوسومالبحث حسب النوعالمراجع أفضل من Findالقيمة Null في Unityمراجعة: أقرب عملة5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity