כוכב אחר כוכב
חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 39 מתוך 67.
אתגר
בינונישלח כוכב חדש אחרי כל תפיסה וכל פספוס. כוכב מתפספס כשהערך של y שלו יורד מתחת ל־0. בין אם הכוכב נתפס ובין אם הוא מתפספס, הוא מתחיל מחדש ב־y = 6 וב־z = 0, בערך x אקראי בין -4 ל־4. Random.Range(min, max) מחזירה מספר ממשי אקראי בין min ל־max, ולכן Random.Range(-4f, 4f) בוחרת את ערך x הזה.
בשני המקרים הכוכב מתחיל מחדש באותו אופן, אז כתוב את הקוד פעם אחת במתודה, void ResetStar(), וקרא לה משני המקומות. פספוס לא מוסיף ניקוד. השאר את כל מה שנעשה בשלבים הקודמים.
נסו בעצמכם
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private Transform star;
[SerializeField] private float fallSpeed = 3f;
private int score;
void Update()
{
float x = transform.position.x;
if (Input.GetKey(KeyCode.RightArrow))
{
x += speed * Time.deltaTime;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
x -= speed * Time.deltaTime;
}
x = Mathf.Clamp(x, -4f, 4f);
transform.position = new Vector3(x, transform.position.y, transform.position.z);
star.position += Vector3.down * fallSpeed * Time.deltaTime;
if (Vector3.Distance(transform.position, star.position) < 1f)
{
score++;
Debug.Log("Caught! Score: " + score);
star.position = new Vector3(star.position.x, 6f, star.position.z);
}
}
}
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים