Menu
CoddyTech

מרחב מקומי ומרחב עולמי

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

לאובייקט יש כיוונים משלו, בנוסף לכיווני העולם. transform.forward מציין לאן האף של האובייקט פונה (החץ הכחול בחלון Scene של Unity), והוא ניתן כווקטור בעולם שאורכו יחידה אחת; transform.right ו־transform.up הם הכיוונים ימינה ולמעלה של האובייקט עצמו. כשמסובבים את האובייקט, גם הם מסתובבים איתו. מטוס הנייר הזה מסובב ב־90 מעלות סביב y בסצנה, ולכן הוא עף לאורך ציר x של העולם, בכיוון שאליו הוא פונה:

public float speed = 4f;

void Update()
{
    transform.position += transform.forward * speed * Time.deltaTime;
}

transform.Translate(Vector3.forward * speed * Time.deltaTime) עושה את אותו הדבר, כי Translate מפרשת את הווקטור במרחב המקומי של האובייקט: שם, Vector3.forward מציין את הכיוון הקדמי של האובייקט. העבירו את Space.World כארגומנט שני, והיא תשתמש במקום זאת בצירי העולם, כך ש־transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) יזיז את המטוס לאורך ציר z של העולם, ללא קשר לכיוון שאליו הוא פונה.

transform.Rotate גם מסובבת סביב הצירים המקומיים של האובייקט. במבט מלמעלה, זווית חיובית סביב y מסובבת אובייקט זקוף ימינה, וזווית שלילית מסובבת אותו שמאלה; גם transform.forward שלו מסתובב יחד איתו.

challenge icon

אתגר

קל

תן לטנק פקדי שליטה: החץ ימינה מסובב אותו ימינה והחץ שמאלה מסובב אותו שמאלה, סביב ציר ה-y שלו בקצב של turn מעלות לשנייה. החץ למעלה מניע אותו קדימה, לכיוון שאליו הוא פונה, בקצב של speed יחידות לשנייה. סיבוב בלבד אינו מזיז אותו.

לחץ על Play, הסתובב וסע, ואז לחץ על Check.

נסו בעצמכם

using UnityEngine;

public class Tank : MonoBehaviour
{
    public float speed = 3f;
    public float turn = 90f;

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

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

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