Menu
CoddyTech

להסתכל על דברים

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

transform.LookAt(point) מסובבת אובייקט כך שהציר הקדמי שלו, החץ הכחול של z, יצביע לעבר מיקום בעולם. היא מסובבת את האובייקט ואינה מזיזה אותו. הזרקור הזה נמצא על מגדל בנקודה (0, 6, 0) ומכוון אל השער בנקודה (4, 0, 10):

void Start()
{
    transform.LookAt(new Vector3(4, 0, 10));
}

השער נמוך יותר מהאור, ולכן הזרקור נוטה כלפי מטה תוך כדי הסיבוב: LookAt מכוונת ישר אל הנקודה, גם כלפי מעלה או מטה. לאחר מכן, transform.forward מצביע מהאור לעבר השער.

כשקוראים לה מתוך Start(), ‏LookAt מכוונת פעם אחת. כשקוראים לה מתוך Update(), היא מכוונת שוב בכל פריים, כך שהאובייקט ממשיך לפנות אל הנקודה בזמן שהאובייקט או הנקודה זזים. הארגומנט שלה הוא תמיד מיקום: ‏LookAt(Vector3.forward) מכוונת אל נקודת העולם (0, 0, 1), נקודה ליד מרכז העולם, בלי קשר למקום שבו האובייקט נמצא.

challenge icon

אתגר

בינוני

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

לחץ על Play, סע מסביב, ואז לחץ על Check.

נסו בעצמכם

using UnityEngine;

public class Rover : MonoBehaviour
{
    public float speed = 3f;

    void Update()
    {
        Vector3 move = Vector3.zero;
        if (Input.GetKey(KeyCode.RightArrow)) move += Vector3.right;
        if (Input.GetKey(KeyCode.LeftArrow)) move += Vector3.left;
        if (Input.GetKey(KeyCode.UpArrow)) move += Vector3.forward;
        if (Input.GetKey(KeyCode.DownArrow)) move += Vector3.back;
        move = move.normalized;
        transform.position += move * speed * Time.deltaTime;
        // סובבו את הרובר כך שיפנה לכיוון נסיעתו
    }
}
quiz iconבחנו את עצמכם

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

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