Menu
CoddyTech

SerializeField

חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 8 מתוך 67.

לשדה public יש שתי מטרות בו־זמנית: הוא מופיע בחלון Inspector, וכל סקריפט אחר יכול לקרוא אותו ולשנות אותו. לעיתים קרובות רוצים רק את הראשון. שדה private (ברירת המחדל ב־C#) ניתן לשינוי רק מתוך המחלקה שלו, כך שאף סקריפט אחר לא יכול לשבש אותו, אבל Unity לא מציגה אותו בחלון Inspector.

[SerializeField] מבקש מ־Unity לשמור ולהציג בכל זאת שדה פרטי. הטווח של הצריח הזה מוגדר לכל צריח בנפרד בחלון Inspector, ואף סקריפט אחר לא יכול לגעת בו:

[SerializeField] private float range = 5f;

void Start()
{
    Debug.Log("Range: " + range);
}

כך רוב קוד Unity שומר את ההגדרות שלו: פרטיות, עם [SerializeField]. שימו לב למקרה ההפוך: אם הופכים שדה לפרטי ושוכחים את המאפיין, Unity משמיטה בשקט את הערך שנשמר בסצנה. השדה חוזר למספר שמופיע בקוד, בלי שתתקבל הודעת שגיאה.

challenge icon

אתגר

קל

המאפיין height של המנורה ציבורי, ולכן כל סקריפט יכול להזיז אותה. הפוך את height לפרטי, תוך השארתו ב־Inspector, שמגדיר אותו ל־4. המנורה עדיין צריכה להיות תלויה בגובה שנקבע ב־Inspector.

לחץ על Play והסתכל על גובה המנורה, ואז לחץ על Check.

נסו בעצמכם

using UnityEngine;

public class LampHeight : MonoBehaviour
{
    public float height = 1f;

    void Start()
    {
        transform.position = new Vector3(0, height, 0);
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות התכנות ב-Unity