הצגה והסתרה
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 48 מתוך 85.
SetActive(false) מכבה אובייקט GameObject שלם: הוא לא מוצג, הוא כבר לא מתנגש, הסקריפטים שעליו מפסיקים לקבל Update(), וגם הילדים שלו מושבתים יחד איתו. SetActive(true) מחזיר את הכול לפעולה, ו־activeSelf מציין אם הוא פעיל. הסקריפט הזה, שמוצמד לכפתור, מסתיר את הדלת שבשדה door שלו בלחיצת עכבר:
public GameObject door;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
door.SetActive(false);
}
}סקריפט שמסתיר את האובייקט של עצמו באמצעות gameObject.SetActive(false) לא יכול להחזיר אותו לפעולה, כי Update() שלו כבר לא רץ. לכן המתג נמצא על אובייקט אחר, שמחזיק הפניה לאובייקט שהוא מציג ומסתיר.
enabled משבית רכיב אחד ומשאיר את שאר האובייקט ללא שינוי. GetComponent<Renderer>().enabled = false הופך אובייקט לבלתי נראה, אבל הקוליידר שלו עדיין חוסם דברים: קיר בלתי נראה. סקריפט עם enabled = false כבר לא מקבל קריאות ל־Update(), אבל האובייקט נשאר בסצנה, עדיין מוצג ועדיין מתנגש, ושאר הרכיבים שלו ממשיכים לפעול.
אתגר
בינוניהשתמשו במקש הרווח כדי להסתיר את הגשר ולהחזיר אותו.
- בתוך
Update(), כאשר מתקייםInput.GetKeyDown(KeyCode.Space), קראו ל-bridge.SetActive(...)כדי להחליף את מצב הגשר כולו, כולל הקוליידר. - העבירו את ההפך ממצבו:
bridge.SetActive(!bridge.activeSelf);.
לחצו על "שחק" ולחצו על מקש הרווח כמה פעמים: הגשר נעלם וחוזר. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class BridgeSwitch : MonoBehaviour
{
public GameObject bridge;
void Update()
{
// לחיצה על Space מסתירה את הגשר, והלחיצה הבאה מציגה אותו שוב
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין