התופס
חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 36 מתוך 67.
בפרק הזה נבנה משחק קטן, Catch the Star, תכונה אחת בכל שיעור: כוכב נופל, מחליקים לוכד שמאלה וימינה מתחתיו, כל תפיסה מעניקה נקודות וגורמת לכוכב הבא ליפול מהר יותר, ושלוש החטאות מסיימות את המשחק. כל המשחק נמצא בסקריפט אחד, Catcher, שעל הלוכד. התכונה הראשונה היא תנועה: הלוכד מחליק באמצעות מקשי החצים ולעולם אינו עוזב את הרצפה.
המשימה של הגבלת מספר לטווח מסוים היא של Mathf.Clamp(value, min, max). היא מחזירה את min כשהערך נמוך מ־min, את max כשהוא גבוה מ־max, ואת הערך עצמו בכל מקרה אחר. המצלמה הזו עוקבת אחרי השחקן במעלה מגדל, אבל הגובה שלה נשאר בין 2 ל־12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp מחזירה מספר חדש ואינה משנה דבר בעצמה, לכן צריך להציב את התוצאה. יש להפעיל את Clamp אחרי כל השינויים של הפריים ולפני שמציבים את המיקום בחזרה, וכך האובייקט לעולם לא יופיע בפריים מעבר לגבול שלו.
אתגר
בינוניהוסף תנועה לתופסן (הפס הכחול). כשהחץ ימינה מוחזק, הוא מחליק ימינה (לאורך +x), וכשהחץ שמאלה מוחזק, הוא מחליק שמאלה, בשני המקרים בקצב של speed יחידות לשנייה. ערכי ה־y וה־z שלו לעולם אינם משתנים.
הרצפה משתרעת מ־x = -5 עד x = 5, ורוחב התופסן הוא 2 יחידות. הגבל את ערך ה־x שלו כך שהתופסן כולו יישאר תמיד על הרצפה.
לחץ על Play, לחץ על המשחק ונסה את החצים, ואז לחץ על Check.
נסו בעצמכם
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// מקשי החצים: הזיזו לאורך ציר x בקצב של speed יחידות לשנייה.
// השאירו את כל התופס על הרצפה (x בין -5 ל-5, רוחב התופס הוא 2).
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים