מרחב מקומי ומרחב עולמי
חלק מהיחידה יסודות התכנות ב-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 שלו מסתובב יחד איתו.
אתגר
קלתן לטנק פקדי שליטה: החץ ימינה מסובב אותו ימינה והחץ שמאלה מסובב אותו שמאלה, סביב ציר ה-y שלו בקצב של turn מעלות לשנייה. החץ למעלה מניע אותו קדימה, לכיוון שאליו הוא פונה, בקצב של speed יחידות לשנייה. סיבוב בלבד אינו מזיז אותו.
לחץ על Play, הסתובב וסע, ואז לחץ על Check.
נסו בעצמכם
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// החצים ימינה ושמאלה: סיבוב סביב y. החץ למעלה: נסיעה בכיוון שאליו פונה הטנק.
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים