בונה המגדלים
חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 67 מתוך 67.
עגורן נע קדימה ואחורה מעל בסיס. כל לחיצה על מקש הרווח, או כל לחיצה, מפילה בלוק ישר למטה מהעגורן. בלוק שנוחת על גבי הערימה נשאר שם, והבלוק הבא חייב לנחות עליו. בלוק שמחטיא נופל הצידה. גובה הערימה הוא הניקוד.
כתבו את כל המשחק בסקריפט אחד, Crane, שעל העגורן.
אתגר
קשהכתבו את הסקריפט Crane על ה־Crane. ב־Inspector מגדירים את blockPrefab (ה־prefab של ה־Block), את top (ה־Base, החלק העליון של הערימה עד כה), את craneSpeed (3), את craneEdge (4) ואת fallSpeed (7).
- העגורן נע לאורך ציר x במהירות של
craneSpeedיחידות לשנייה. אחרי שהוא עובר אתcraneEdge, הוא מסתובב וחוזר שמאלה, ואחרי שהוא עובר את-craneEdge, הוא מסתובב וחוזר ימינה. - לחיצה על Space או לחיצה שמאלית בעכבר מפילה Block בנקודת ה־x של העגורן, יחידה אחת מתחת לעגורן. כל עוד בלוק נופל, לחיצות נוספות לא עושות דבר.
- הבלוק הנופל נע כלפי מטה במהירות של
fallSpeedיחידות לשנייה. - כאשר ערך ה־y שלו יורד לערך ה־y של
topועוד 1, והמרחק בין ערך ה־x שלו לערך ה־x שלtopקטן מ־1, הוא נוחת: הגדירו את ערך ה־y שלו בדיוק לערך ה־y שלtopועוד 1, הפכו אותו ל־topהחדש, והדפיסו את גובה הערימה כך:Stack: 1,Stack: 2וכן הלאה. - בלוק שאינו נוחת ממשיך ליפול. מתחת ל־y = -3, השמידו אותו והדפיסו
Missed!.
לחצו על Play ובנו מגדל, ואז לחצו על Check.
נסו בעצמכם
using UnityEngine;
public class Crane : MonoBehaviour
{
[SerializeField] private GameObject blockPrefab;
[SerializeField] private Transform top;
[SerializeField] private float craneSpeed = 3f;
[SerializeField] private float craneEdge = 4f;
[SerializeField] private float fallSpeed = 7f;
void Update()
{
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים