Menu
CoddyTech

הסתובב בכל שנייה

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

transform.Rotate(x, y, z) מסובבת GameObject במספר המעלות הזה סביב כל אחד מהצירים שלו. כשקוראים לה בתוך Update(), היא מסובבת מעט בכל פריים, כך שהאובייקט ממשיך להסתובב.

אבל כמה פריימים יש בשנייה? במחשב מהיר אולי 120, ובטלפון אולי 30. transform.Rotate(0, 0, 5) פשוטה תסובב אותו מהר פי ארבעה במחשב המהיר. הפתרון של Unity הוא Time.deltaTime: מספר השניות שחלפו מאז הפריים האחרון. כשמכפילים בו מהירות, המהירות היא לשנייה, בכל מכשיר.

כאן גלגל מסתובב סביב ציר ה-z שלו, 45 מעלות בכל שנייה:

public float speed = 45f;

void Update()
{
    transform.Rotate(0, 0, speed * Time.deltaTime);
}

בקצב של 60 פריימים בשנייה, Time.deltaTime הוא בערך 0.0167, כך שבכל פריים הגלגל מסתובב ב-45 * 0.0167, בערך 0.75 מעלות, ו-60 פריימים כאלה מסתכמים ב-45. בקצב של 30 פריימים בשנייה, הגלגל מסתובב בכל פריים פי שניים, ובכל זאת, אחרי שנייה מתקבל סך של 45.

challenge icon

אתגר

קל

לקובייה יש סקריפט Spinner עם speed של 90. בתוך Update(), גרמו לקובייה להסתובב סביב ציר ה-y שלה, speed מעלות בכל שנייה, בכל מכשיר.

לחצו על Play כדי לצפות, ואז על Check.

נסו בעצמכם

using UnityEngine;

public class Spinner : MonoBehaviour
{
    public float speed = 90f;

    void Update()
    {
        // סובבו כאן את הקובייה סביב ציר ה-y שלה
    }
}
quiz iconבחנו את עצמכם

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

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