הרץ
חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 60 מתוך 67.
בפרק הזה נבנה משחק קטן, Dodge the Blocks. תנווטו רץ לאורך נתיב בזמן שבלוקים נופלים מהשמיים, ומגע אחד מסיים את הריצה. כל המשחק נמצא בסקריפט אחד, Runner, שמקבל תכונה בכל שיעור: ניווט, בלוקים נופלים, ניקוי שלהם, פגיעה וניקוד.
התכונה הראשונה היא ניווט שנשאר בנתיב, בעזרת Mathf.Clamp(value, min, max) מתוך Catch the Star: היא מחזירה את min כשהערך נמוך מהטווח, את max כשהוא גבוה ממנו, ואת הערך עצמו בכל מקרה אחר. חשוב היכן מציבים את פעולת ההגבלה. מד הטעינה הזה מתמלא כל עוד מקש הרווח לחוץ, מתרוקן כשהוא אינו לחוץ, ונשאר תמיד בטווח שבין 0 ל-10:
[SerializeField] private float charge = 0f;
void Update()
{
if (Input.GetKey(KeyCode.Space))
{
charge += 4f * Time.deltaTime;
}
else
{
charge -= 2f * Time.deltaTime;
}
charge = Mathf.Clamp(charge, 0f, 10f);
transform.localScale = new Vector3(0.5f, charge, 0.5f);
}פעולת ההגבלה מתבצעת אחרי השינוי. אם היינו מגבילים קודם, הערך היה עלול לסיים את הפריים כשהוא חורג מהגבול בצעד אחד, והמד היה מצויר לפי הערך הזה. Mathf.Clamp גם מחזירה מספר חדש במקום לשנות את המשתנה שמעבירים לה, לכן יש להציב את התוצאה בחזרה במשתנה.
אתגר
בינוניהתחל את Dodge the Blocks עם הרץ. בחלון Inspector מוגדרים לסקריפט Runner הערכים speed (6) ו-laneEdge (4).
- החצים שמאלה וימינה מזיזים את הרץ לאורך ציר x במהירות של
speedיחידות לשנייה. - ערך x שלו לעולם אינו יורד מתחת ל-
-laneEdgeאו עולה מעלlaneEdge, כך שהוא נשאר במסלול.
לחץ על Play, לחץ על המשחק ורוץ לשני קצות המסלול, ואז לחץ על Check.
נסו בעצמכם
using UnityEngine;
public class Runner : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float laneEdge = 4f;
void Update()
{
// הזז לאורך ציר x בעזרת החצים, ואז השאר את x בתוך המסלול
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים