القوالب وInstantiate
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 62 من 85.
إن الـprefab هو كائن GameObject محفوظ كقالب: اسحب كائنًا من Hierarchy إلى نافذة Project، وسيحفظه Unity مع جميع مكوّناته وقيم Inspector. لا يوجد الـprefab نفسه في المشهد. يحصل السكربت على واحد عبر حقل، مثل أي مرجع آخر: صرّح عن public GameObject parcelPrefab; واسحب الـprefab إلى ذلك الحقل في Inspector.
تنشئ Instantiate(prefab, position, rotation) نسخة من الـprefab في المشهد وتُعيدها. تُسقط طائرة التوصيل المسيّرة هذه طردًا عند موقعها في كل مرة يُضغط فيها Space. تعني Quaternion.identity عدم وجود دوران:
public GameObject parcelPrefab;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Instantiate(parcelPrefab, transform.position, Quaternion.identity);
}
}يضيف كل ضغط كائنًا آخر إلى Hierarchy، ويُسمى Parcel(Clone). يبقى الـprefab كما هو، لذا تبدأ كل نسخة بالقيم نفسها. يهمّ GetKeyDown هنا: فباستخدام GetKey، سيؤدي الضغط المستمر على Space لمدة نصف ثانية إلى إسقاط نحو 30 طردًا، واحدًا في كل إطار.
التحدي
متوسطاجعل كل نقرة تُنشئ عملة فوق اللاعب.
- أضف الحقل
public GameObject coinPrefab;. يملؤه المشهد بمكوّن Coin الجاهز. - في
Update()، عندInput.GetMouseButtonDown(0)، استدعِInstantiate(coinPrefab, transform.position + new Vector3(0, 2, 0), Quaternion.identity);.
اضغط «العب»، وتحرك وانقر: ستظهر عملة فوق اللاعب في كل مرة. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class CoinDropper : MonoBehaviour
{
public float speed = 4f;
// coinPrefab: حقل عام من نوع GameObject، مُعيَّن إلى قالب Coin
void Update()
{
if (Input.GetKey(KeyCode.RightArrow))
{
transform.position += new Vector3(speed * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.position -= new Vector3(speed * Time.deltaTime, 0, 0);
}
// Click: أنشئ عملة على ارتفاع 2 وحدة فوق اللاعب
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة11القوالب والإنشاء
القوالب وInstantiateالإنشاء بمؤقّتالإنشاء ضمن شبكةقوائم الكائناتالتراجع عن الأحدثالتدميرالإنشاء العشوائيمراجعة: الألعاب النارية6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity