הרץ
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 75 מתוך 85.
בפרק הזה נבנה משחק קטן, 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: כוונו את הרץ לאורך הנתיב שלו.
- בתוך
Update(), העתיקו אתtransform.positionאלVector3 p, והוסיפו אתInput.GetAxisRaw("Horizontal") * speed * Time.deltaTimeאלp.x. הציר הגולמי מזיז במהירות מלאה מיד. - הגדירו
p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);, ואזtransform.position = p;.
לחצו על „שחק”, לחצו על המשחק ורוצו לשני הקצוות: הרץ נעצר בקצוות. לאחר מכן לחצו על „בדיקה”.
נסו בעצמכם
using UnityEngine;
public class Runner : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float laneEdge = 4f;
void Update()
{
// הזז לאורך x בעזרת מקשי החצים, ואז השאר את x בתוך הנתיב
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין