الإنشاء ضمن شبكة
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 50 من 67.
تحلقة داخل حلقة تزور كل خلية في شبكة: تختار الحلقة الخارجية عمودًا، وتسير الحلقة الداخلية على امتداده. ضع Instantiate داخلها، وسيحصل كل موضع على كائن. ينشئ هذا أرضية من 3 في 3 من البلاطات التي يبلغ عرضها وحدتين، لذا تتباعد البلاطات بمقدار وحدتين:
public GameObject tilePrefab;
void Start()
{
for (int x = 0; x < 3; x++)
{
for (int z = 0; z < 3; z++)
{
Vector3 spot = new Vector3(x * 2, 0, z * 2);
Instantiate(tilePrefab, spot, Quaternion.identity, transform);
}
}
}تقع البلاطات عند x = 0, 2, 4 وعند z = 0, 2, 4: تسع بلاطات، من (0, 0, 0) إلى (4, 0, 4). تعمل الحلقتان في Start() مرة واحدة. أما في Update() فستضيفان تسع بلاطات أخرى في كل إطار.
المعامل الرابع هو عنصر أب. ستسبب كائنات Tile(Clone) التسعة المنفصلة فوضى في نافذة Hierarchy؛ أما تمرير transform فيضعها ضمن الكائن الذي يوجد عليه هذا السكربت، وهو Floor، بحيث يمكن طيّها أو تحريكها معًا أو حذفها معًا. يظل الموضع الذي تمرّره موضعًا عالميًا.
التحدي
متوسطابنِ جدارًا من الطوب باستخدام العنصر الجاهز Brick، بعرض 4 طوبات وارتفاع 5 صفوف، قائمًا على الأرض. عرض الطوبة وحدة واحدة وارتفاعها 0.5.
- تقع الأعمدة الأربعة عند x = -1.5 و-0.5 و0.5 و1.5.
- يستند الصف السفلي إلى الأرض، لذا تقع طوباته عند y = 0.25. يقع كل صف على ارتفاع 0.5 فوق الصف الذي تحته.
- تقع كل طوبة عند z = 0، دون دوران، وهي عنصر فرعي من Wall، وهو العنصر الذي يوجد عليه هذا البرنامج النصي.
اضغط على Play لرؤية الجدار، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class WallBuilder : MonoBehaviour
{
public GameObject brickPrefab;
void Start()
{
// 4 أعمدة و5 صفوف من الطوب، كل طوبة منها عنصر فرعي لهذا Wall
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر