חציית הכביש
חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 66 מתוך 67.
הקופץ ממתין בקצהו של כביש סואן. מכוניות מגיעות משמאל בשלושה נתיבים ונוסעות לרוחב הכביש. השחקן קופץ קדימה או אחורה נתיב אחד בכל פעם באמצעות החצים למעלה ולמטה, ועליו לתזמן כל קפיצה כדי להגיע לצד השני. מכונית שנוגעת בקופץ מחזירה אותו למקום שבו התחיל.
כתבו את המשחק כולו בסקריפט אחד, Crossing, שמוצמד לקופץ.
אתגר
קשהכתבו את הסקריפט Crossing על הופר, שמתחיל ב־z = -4, מתחת לכביש בעל שלושה נתיבים. ב־Inspector הגדירו את carPrefab (ה־prefab של המכונית), את lanes (מיקומי ה־z של הנתיבים: -2, 0 ו־2), את spawnEvery (1) ואת carSpeed (5).
- כל לחיצה על חץ למעלה מקפיצה את ההופר 2 יחידות קדימה (+z). כל לחיצה על חץ למטה מקפיצה אותו 2 יחידות אחורה, אך לעולם לא מעבר למקום שבו התחיל.
- כל
spawnEveryשניות מופיעה מכונית ב־x = -9, y = 0.5, בנתיב אקראי מתוךlanes. המכוניות נוסעות לאורך +x במהירות שלcarSpeedיחידות לשנייה, ומכונית שה־x שלה גדול מ־9 מושמדת. - מכונית פוגעת בהופר כאשר המרחק בין מיקומי ה־x שלהם קטן מ־1.5 והמרחק בין מיקומי ה־z שלהם קטן מ־1. פגיעה מציגה ביומן
Hit!ומחזירה את ההופר למקום שבו התחיל. - כשההופר מגיע ל־z = 4, הצד הרחוק, הציגו ביומן
You made it!וכבו את הסקריפט.
לחצו על Play וחצו את הכביש, ואז לחצו על Check.
נסו בעצמכם
using System.Collections.Generic;
using UnityEngine;
public class Crossing : MonoBehaviour
{
[SerializeField] private GameObject carPrefab;
[SerializeField] private float[] lanes;
[SerializeField] private float spawnEvery = 1f;
[SerializeField] private float carSpeed = 5f;
void Start()
{
}
void Update()
{
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים