הפעלה וכיבוי של פאנלים
חלק מהיחידה בניית משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 9 מתוך 60.
לוח הוא תמונת ממשק משתמש, שנמתחת לעיתים קרובות על פני כל המסך, ושכפתורים וטקסטים הם רכיבים צאצאים שלה. הקריאה 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() מסתירה אותם. השאר את הסקריפט שפותח לוח מחוץ ללוח עצמו: אובייקט משחק לא פעיל אינו מקבל קריאות ל-Start() או ל-Update(), ולכן סקריפט שנמצא על לוח שנשמר כשהוא מוסתר לעולם לא יגדיר את הכפתורים שלו. ה-Canvas או אובייקט מנהל המשחק, שנשארים פעילים, הם מקומות מתאימים עבורו. mapPanel.activeSelf מציין אם הלוח מופעל, ולכן mapPanel.SetActive(!mapPanel.activeSelf) הופך את מצבו.
אתגר
קלהוסיפו תפריט למשחק באחו: כתבו Start() בתוך Menu.cs.
- הסתירו את
menuPanelואתhelpPanelבאמצעותSetActive(false). - לחיצה על
menuButtonמציגה את התפריט ומגדירה אתmover.enabled = false; לחיצה עלresumeButtonמסתירה אותו ומגדירה אתmover.enabled = true. - לחיצה על
helpButtonמסתירה את התפריט ומציגה את העזרה; לחיצה עלbackButtonעושה את ההפך.
לחצו על "שחק" ופתחו את התפריט: השחקן לא יכול ללכת עד שלוחצים על Resume. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
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הפעלה וכיבוי של פאנליםפסי בריאותסיכום: חנות שדרוגיםתרגלו בעצמכם: Unity אונליין