חזרה: מנהל הסיבוב
חלק מהיחידה בניית משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 16 מתוך 60.
הפרק הזה העניק למשחק מנהל אחד: מופע יחיד שאחרים מגיעים אליו בלי שדה, ומצבים שהוא עובר ביניהם. מנהל הסיבוב מפעיל את שניהם.
אתגר
קלהשלם את איסוף המטבעות; SetState כבר כתובה.
- הוסף
public static RoundManager Instance;, והגדר אותו ב־Awake(). - ב־
Update(), בצע החלפה לפיstate: מצב Ready ממתין ללחיצה על Space; מצב Playing סופר לאחור אתtimeLeft, ואז עובר למצב Ready הבא, או למצב Finished אחרי הסיבוב האחרון. public bool TakeCoin(): רק בזמן Playing, ספור את המטבע, הצגCoins: 2, והחזר true. הקובץCoin.csמשמיד מטבע שנאסף כשה־Player נוגע בו.
לחץ על "שחק" בכל שלושת הסיבובים. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
using TMPro;
public enum RoundState { Ready, Playing, Finished }
public class RoundManager : MonoBehaviour
{
// הסינגלטון: Instance סטטי, שמוגדר ב-Awake()
public GameObject readyPanel;
public GameObject playPanel;
public GameObject finishedPanel;
public TMP_Text roundText;
public TMP_Text coinsText;
public TMP_Text finalText;
public int rounds = 3;
public float roundTime = 4f;
private RoundState state;
private int round = 1;
private int coins;
private float timeLeft;
void Start()
{
SetState(RoundState.Ready);
}
void Update()
{
// בחירה לפי state: Ready ממתין ללחיצה על Space; Playing סופר את הזמן לאחור
}
void SetState(RoundState next)
{
state = next;
readyPanel.SetActive(next == RoundState.Ready);
playPanel.SetActive(next == RoundState.Playing);
finishedPanel.SetActive(next == RoundState.Finished);
if (next == RoundState.Ready) roundText.text = "Round " + round;
if (next == RoundState.Playing) timeLeft = roundTime;
if (next == RoundState.Finished) finalText.text = "Coins: " + coins;
}
// TakeCoin(): המטבע נספר רק בזמן Playing
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה בניית משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעות2כפתורים ומסכים
כפתורים ו-onClickביטויי למבדהחיבור ב-Inspectorהפעלה וכיבוי של פאנליםפסי בריאותסיכום: חנות שדרוגיםתרגלו בעצמכם: Unity אונליין