Menu
CoddyTech

יצירה לפי טיימר

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

מחולל שיוצר משהו מדי כמה שניות זקוק לטיימר. Time.deltaTime הוא הזמן שנמשך הפריים האחרון, ולכן הוספתו בכל Update() לשדה נותנת את מספר השניות שחלפו. כשהסכום מגיע למרווח, יוצרים מופע ומחסרים את המרווח מהסכום.

המזרקה הזאת מתיזה טיפת מים מדי חצי שנייה:

public GameObject dropPrefab;
public float interval = 0.5f;
float timer;

void Update()
{
    timer += Time.deltaTime;
    if (timer >= interval)
    {
        Instantiate(dropPrefab, transform.position, Quaternion.identity);
        timer -= interval;
    }
}

timer -= interval משמר את השארית: אם הפריים הסתיים אחרי 0.51 שניות, חצי השנייה הבאה מתחילה להיספר מ-0.01, והטיפות נשארות בקצב קבוע. timer = 0 היה משליך את השארית, ולכן כל טיפה הייתה יוצאת מעט באיחור והעיכוב היה מצטבר לאורך משחק ארוך. timer הוא פרטי כי אין צורך שאיש יגדיר אותו במפקח.

challenge icon

אתגר

בינוני

הפילו קופסה כל interval שניות (2 בחלון Inspector).

  1. הוסיפו את השדות float timer; ו-int count;. בתוך Update(), הוסיפו את Time.deltaTime ל-timer.
  2. כאשר timer >= interval, קראו ל-Instantiate(boxPrefab, transform.position, Quaternion.identity); והחסירו את interval מ-timer.
  3. לאחר מכן, הוסיפו 1 ל-count והדפיסו ביומן את "Box " + count.

לחצו על "שחק": קופסה נופלת כל 2 שניות, וב-Console נספרים Box 1, Box 2. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

using UnityEngine;

public class BoxDropper : MonoBehaviour
{
    public GameObject boxPrefab;
    public float interval = 1f;

    void Update()
    {
        // כל interval שניות: צור תיבה ותעד ביומן "Box 1", "Box 2"...
    }
}

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

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