Menu
CoddyTech

משתנים ששומרים ערכים

חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 5 מתוך 85.

Unity קוראת ל־Update() בכל פריים, וכל קריאה מתחילה מחדש: משתנה שנוצר בתוך מתודה נזרק כשהמתודה מסתיימת. לכן המונה הזה לעולם לא עובר את 1:

void Update()
{
    int frames = 0;
    frames++;
}

frames++ מוסיף 1, וזו הדרך הקצרה לכתוב frames += 1. אבל בפריים הבא שוב מתבצעת int frames = 0;, והספירה מתחילה מחדש.

כדי לזכור ערך מפריים אחד לבא אחריו, צרו את המשתנה בתוך המחלקה, אבל מחוץ לכל מתודה. משתנה כזה נקרא שדה: הוא מתקיים כל עוד האובייקט קיים, וכל מתודה במחלקה יכולה להשתמש בו.

int frames = 0;

void Update()
{
    frames++;
}

עכשיו frames ממשיך לספור: 1, 2, 3 וכן הלאה, עוד אחד בכל פריים.

challenge icon

אתגר

קל

גרמו לצמח להמשיך לגדול.

  1. גזרו את השורה int frames = 0; מתוך Update().
  2. הדביקו אותה מעל void Update(), בתוך המחלקה, כך ש-frames יהפוך לשדה שזוכר את הערך שלו.

לחצו על "שחק": הצמח גדל מעט בכל פריים. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

using UnityEngine;

public class Grower : MonoBehaviour
{
    void Update()
    {
        int frames = 0;
        frames++;
        transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
    }
}

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

תרגלו בעצמכם: Unity אונליין