לולאות בתוך לולאות
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 38 מתוך 85.
שורה דורשת לולאה אחת. קומה שלמה, עם שורות ועמודות, דורשת לולאה בתוך לולאה:
for (int column = 0; column < 3; column++)
{
for (int row = 0; row < 2; row++)
{
Debug.Log(column + ", " + row);
}
}בכל סיבוב של הלולאה החיצונית, הלולאה הפנימית רצה עד הסוף. לכן הקוד הזה מדפיס 0, 0 ו-0, 1, ואז 1, 0 ו-1, 1, ואז 2, 0 ו-2, 1: 3 עמודות כפול 2 שורות, 6 שורות בסך הכול.
לשתי הלולאות דרושים מונים בעלי שמות שונים. כאן הם נקראים לפי מה שהם סופרים, column ו-row, וכך קל יותר לקרוא את הקוד מאשר כאשר משתמשים ב-i וב-j.
אתגר
בינוניבנו רצפה מ־12 אריחים: 4 עמודות ו־3 שורות.
- בתוך
Start(), החליפו אתPlaceTile(0, 0);ב־for (int column = 0; column < 4; column++). - בתוך הסוגריים המסולסלים של הלולאה, כתבו
for (int row = 0; row < 3; row++), וקראו ל־PlaceTile(column, row);בתוך הלולאה הפנימית.
לחצו על "שחק": תופיע רצפה של 4 על 3 אריחים. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class TileFloor : MonoBehaviour
{
void Start()
{
// הנח אריחים ב-4 עמודות ו-3 שורות.
PlaceTile(0, 0);
}
void PlaceTile(int column, int row)
{
GameObject tile = GameObject.CreatePrimitive(PrimitiveType.Cube);
tile.name = "Tile";
tile.transform.position = new Vector3(column * 1.1f - 1.65f, 0.1f, row * 1.1f);
tile.transform.localScale = new Vector3(1, 0.2f, 1);
tile.GetComponent<Renderer>().material.color = new Color(0.85f, 0.85f, 0.9f);
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין