Menu
CoddyTech

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

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

לאובייקט יש כיוונים משלו, נוסף על כיווני העולם. 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

אתגר

קל

תנו לטנק בקרות טנק: סובבו במקום, סעו בכיוון שאליו הוא פונה.

  1. בתוך Update(), כל עוד מקש החץ ימינה מוחזק, הפעילו transform.Rotate(0, turn * Time.deltaTime, 0);, ועם -turn עבור מקש החץ שמאלה.
  2. כל עוד מקש החץ למעלה מוחזק, הפעילו transform.Translate(Vector3.forward * speed * Time.deltaTime);.

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

נסו בעצמכם

using UnityEngine;

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

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

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

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