Menu
CoddyTech

מהירות אלכסונית

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

לחצו יחד על החצים ימינה ולמעלה, והצירים הגולמיים נותנים את הכיוון (1, 0, 1). האורך שלו, .magnitude, הוא השורש הריבועי של 1 + 1, בערך 1.41. דמות שהולכת באמצעותו עוברת 1.41 יחידות באלכסון בזמן שהיא עוברת יחידה אחת ישר קדימה: 41% מהר יותר.

.normalized מחזיר עותק של וקטור שמצביע לאותו כיוון ואורכו בדיוק יחידה אחת: (1, 0, 1) הופך בערך ל-(0.71, 0, 0.71), ו-(0, 0, 5) הופך ל-(0, 0, 1). כשכופלים במהירות, הוא נע באותה מהירות בכל כיוון. הדבורה הזאת עפה לעבר הפרח במהירות של 2 יחידות לשנייה, בין שהפרח רחוק ובין שהוא קרוב; בלי .normalized היא הייתה עפה מהר יותר ככל שהפרח רחוק יותר:

public Vector3 flower = new Vector3(4, 1, 3);
public float speed = 2f;

void Update()
{
    Vector3 toFlower = flower - transform.position;
    transform.position += toFlower.normalized * speed * Time.deltaTime;
}

Vector3.zero.normalized נשאר (0, 0, 0), כי לאפס אין כיוון. v.normalized משאיר את v כפי שהיה; v.Normalize() משנה את v עצמו.

challenge icon

אתגר

קל

כתבו את התנועה של הדמות. החצים (או WASD), שנקראים באמצעות הצירים הגולמיים, מזיזים אותה שמאלה וימינה לאורך ציר x ולמעלה ולמטה לאורך ציר z. היא נעה במהירות של speed יחידות לשנייה בכל כיוון, כולל באלכסון, מתחילה ונעצרת מיד, ונשארת במקום כשלא מוחזק אף מקש.

לחצו על Play, לכו ישר ובאלכסון, ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

public class Walker : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // מקשי החצים או WASD: נועו לאורך x ו-z במהירות speed, באותה מהירות גם באלכסון.
    }
}
quiz iconבחנו את עצמכם

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

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