Menu
CoddyTech

הקיר

שיעור 5 מתוך 16 בקורס משחק Unity: שובר לבנים של Coddy.

הלבנים מסודרות ברשת: שורות מלמעלה למטה, עמודות משמאל לימין, כל אחת מהן עותק של קדם־אובייקט של לבנה שנוצר בשתי לולאות מקוננות. המיקום של לבנה נקבע לפי מספרי השורה והעמודה שלה כפול המרווח בין מרכזי הלבנים, שהוא גודל הלבנה בתוספת רווח קטן.

כדי למרכז רשת סביב x = 0, חשבו היכן נמצאת העמודה הראשונה. בין n עמודות יש n פחות 1 רווחים, ולכן כאשר המרווח הוא s, המרחק בין המרכזים החיצוניים הוא (n - 1) * s, והראשון נמצא במרחק של חצי מזה שמאלה. חמישה עמודי גדר, במרווחים של 2 יחידות:

int posts = 5;
float spacing = 2f;
float left = -(posts - 1) * spacing / 2f;
for (int i = 0; i < posts; i++)
{
    Instantiate(postPrefab, new Vector3(left + i * spacing, 0f, 3f), Quaternion.identity);
}

הם ניצבים במיקומים ‎-4, ‎-2, 0, 2 ו־4: העמוד הראשון נמצא ב־‎-4, ולא ב־‎-5, כי ארבעה רווחים מפרידים בין חמישה עמודים. הארגומנט הרביעי של Instantiate, Transform של הורה, מציב כל עותק תחת אובייקט אחד כדי שה-Hierarchy יישאר מסודר. כאשר סוג השדה של הקדם־אובייקט הוא סקריפט, כגון Brick, Instantiate מחזירה את הסקריפט של העותק החדש, מוכן לשימוש.

challenge icon

אתגר

בינוני

בנו את הקיר ב־GameManager:

  1. הוסיפו public Brick brickPrefab ו־public Transform wall (הסצנה מקשרת בין ה־prefab של Brick לבין האובייקט Wall), וגם public int rows = 5, public int columns = 9, public float spacingX = 1.75f, public float spacingY = 0.75f ו־public float topY = 6f.
  2. כתבו void BuildWall(): לבנה בכל שורה ועמודה, שתהיה צאצא של wall. שורה 0 נמצאת ב־y = topY, וכל שורה נמוכה ממנה ב־spacingY. המרחק בין העמודות הוא spacingX, והן ממורכזות סביב x = 0. הלבנים נמצאות ב־z = 0.
  3. קראו ל־BuildWall() מתוך Start().

לחצו על Play והקפיצו את הכדור מהקיר (הלבנים עדיין לא נשברות), ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // בהמשך: קיר הלבנים, הניקוד, החיים והשלבים.
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה משחק Unity: שובר לבנים