OnEnable ו-OnDisable
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 72 מתוך 85.
הפעולה OnEnable() מתבצעת בכל פעם שסקריפט הופך לפעיל: כשהאובייקט שלו מופיע לראשונה (מיד אחרי Awake()), ושוב בכל פעם שהאובייקט מוצג באמצעות SetActive(true) או שהסקריפט מופעל מחדש באמצעות enabled = true. הפעולה OnDisable() מתבצעת בכל פעם שהאובייקט מוסתר, שהסקריפט מושבת או שהאובייקט נהרס.
פורטל שסקריפט אחר פותח וסוגר באמצעות SetActive יכול לדווח על עצמו:
void OnEnable()
{
Debug.Log("Portal open");
}
void OnDisable()
{
Debug.Log("Portal closed");
}הפורטל מתעד את Portal open כשהסצנה מתחילה. הסתרתו והצגתו שוב מתעדות תחילה את Portal closed, ולאחר מכן את Portal open, בעוד Awake() ו-Start() אינן מתבצעות פעם נוספת. לכן, קוד שחייב להתבצע בכל הופעה, כמו איפוס טיימר או ספירת ביקורים, צריך להופיע בתוך OnEnable(). כשהפורטל מוסתר, Update() שלו לא מתבצעת, ולכן הפתיחה והסגירה נעשות באמצעות סקריפט שעל אובייקט אחר.
אתגר
בינוניגרמו לכל רכיב Switchable לדווח כשהוא מופעל וכשהוא מושבת.
- הוסיפו שדה
int count;ואתvoid OnEnable(): הוסיפו 1 ל־count, ואז רשמו ביומן אתname + " on (" + count + ")", למשלBubble on (2). - הוסיפו את
void OnDisable(), שרושמת ביומן אתname + " off".
לחצו על "שחק" ולחצו על מקש הרווח: המסוף מציג Player on (1), ואז Bubble on (1) ו־Bubble off. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Switchable : MonoBehaviour
{
public GameObject target;
void Update()
{
if (target != null && Input.GetKeyDown(KeyCode.Space))
{
target.SetActive(!target.activeSelf);
}
}
// בכל פעם שהאובייקט הזה מופעל: יש לספור את ההפעלה ולרשום ביומן "<name> on (<count>)"
// בכל פעם שהוא מושבת: יש לרשום ביומן "<name> off"
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין