הפעלה וכיבוי של פאנלים
חלק מהיחידה בונים משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 9 מתוך 56.
פאנל הוא תמונת UI, שלעתים קרובות נמתחת על פני כל המסך, ויש לו כפתורים וטקסטים כילדים. הפעלת SetActive(false) בפאנל מסתירה אותו ואת כל מה שבתוכו, ואי אפשר ללחוץ על הכפתורים שלו כשהוא מוסתר. כשהוא מוצג, התמונה שלו קולטת את הלחיצות שמיועדות לכל דבר שמתחתיו, ולכן אי אפשר ללחוץ על הכפתורים שמאחורי פאנל שמכסה את כל המסך. המפה הזו נפתחת באמצעות כפתור בפינה ונסגרת באמצעות כפתור במפה:
public GameObject mapPanel;
public Button mapButton;
public Button closeButton;
void Start()
{
mapPanel.SetActive(false);
mapButton.onClick.AddListener(() => mapPanel.SetActive(true));
closeButton.onClick.AddListener(() => mapPanel.SetActive(false));
}קל יותר לערוך פאנלים כשהם מוצגים, ולכן לעיתים קרובות שומרים סצנות כשהם מופעלים, ו-Start() מסתירה אותם. השאירו את הסקריפט שפותח פאנל מחוץ לאותו פאנל: אובייקט GameObject לא פעיל לא מקבל קריאות ל-Start() או ל-Update(), ולכן סקריפט שנמצא על פאנל שנשמר כשהוא מוסתר לעולם לא יקשר את הכפתורים שלו. ה-Canvas או אובייקט מנהל המשחק, שנשארים פעילים, הם מקומות מתאימים עבורו. mapPanel.activeSelf מציין אם הפאנל מופעל, ולכן mapPanel.SetActive(!mapPanel.activeSelf) הופך את מצבו.
אתגר
קללמשחק האחו דרוש תפריט. Menu.cs נמצא על ה־Canvas (HUD), והשדות שלו מקושרים בסצנה. שני הפאנלים פעילים בסצנה, כך שקל לערוך אותם. כתבו את Start() כך ש:
- כשהמשחק מתחיל,
menuPanelו־helpPanelמוסתרים. menuButtonפותח את פאנל התפריט, ו־resumeButtonשלו סוגר אותו.helpButton, שנמצא בפאנל התפריט, מחליף את פאנל התפריט בפאנל העזרה, ו־backButton, שנמצא בפאנל העזרה, מחליף בחזרה.- כשהתפריט פתוח, השחקן לא יכול ללכת: הסקריפט
moverמושבת כשהתפריט נפתח ומופעל שוב כש־Resume סוגר אותו.
לחצו על Play, לכו, פתחו את התפריט ואת העזרה שלו, ואז לחצו על Check.
נסו בעצמכם
using UnityEngine;
using UnityEngine.UI;
public class Menu : MonoBehaviour
{
public GameObject menuPanel;
public GameObject helpPanel;
public Button menuButton;
public Button resumeButton;
public Button helpButton;
public Button backButton;
public PlayerMover mover;
void Start()
{
// הסתר את שני הפאנלים, ואז חבר את Menu, Resume, Help ו-Back
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה בונים משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעות2כפתורים ומסכים
כפתורים ו-onClickביטויי למבדהחיבור ב-Inspectorהפעלה וכיבוי של פאנליםפסי בריאותסיכום: חנות שדרוגים