قوائم الكائنات
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 65 من 85.
للمصفوفة طول ثابت يُحدَّد عند إنشائها. لا يعرف المُنشئ مسبقًا عدد العناصر التي سينشئها، لذا يحتفظ بها في List<T>: مصفوفة C# قابلة للنمو. توجد في System.Collections.Generic، ويمثل T نوع العنصر الذي تحتويه. تحتفظ هذه النافورة بكل عملة تنشئها:
using System.Collections.Generic;
using UnityEngine;
public class CoinFountain : MonoBehaviour
{
public GameObject coinPrefab;
List<GameObject> coins = new List<GameObject>();
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
GameObject coin = Instantiate(coinPrefab, transform.position, Quaternion.identity);
coins.Add(coin);
Debug.Log(coins.Count + " coins");
}
}
}تضيف Add عنصرًا في النهاية، وتُبيّن Count عدد العناصر، بينما تحتوي المصفوفة على Length. تتم القراءة كما في المصفوفة: coins[0] هي العملة الأولى، وتمرّ foreach (GameObject c in coins) على جميع العملات. تزيل coins.Remove(coin) ذلك العنصر، وتزيل coins.RemoveAt(0) العنصر الأول؛ وتنتقل العناصر التي تليه مكانًا واحدًا إلى الأمام.
يجب إنشاء القائمة نفسها باستخدام new. الحقل المكتوب بالشكل List<GameObject> coins; يحتوي على null، وستتوقف أول عملية Add مع استثناء NullReferenceException.
التحدي
متوسطاجعل كل نقرة تضيف صندوقًا إلى قائمة.
- أضف
using System.Collections.Generic;والحقلList<GameObject> boxes = new List<GameObject>();. - عند النقر، أنشئ
boxPrefabعندtransform.position + new Vector3(boxes.Count * 1.5f, 0, 0)من دون تدوير، وأضفه إلىboxes. - سجّل
"Boxes: " + boxes.Count.
اضغط «العب» وانقر ثلاث مرات: ستصطف ثلاثة صناديق. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class BoxStacker : MonoBehaviour
{
public GameObject boxPrefab;
// boxes: قائمة List<GameObject> خاصة
void Update()
{
// Click: أنشئ صندوقًا، وضعه على بُعد 1.5 إضافية إلى اليمين لكل صندوق في القائمة، ثم أضفه وسجّل العدد
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة11القوالب والإنشاء
القوالب وInstantiateالإنشاء بمؤقّتالإنشاء ضمن شبكةقوائم الكائناتالتراجع عن الأحدثالتدميرالإنشاء العشوائيمراجعة: الألعاب النارية6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity