Menu
CoddyTech

חיבור וקטורים

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

אפשר לשמור Vector3 במשתנה, ושני וקטורים כאלה מתחברים באמצעות +: רכיב x מתחבר לרכיב x, רכיב y לרכיב y ורכיב z לרכיב z. כך שתי דחיפות משתלבות לתנועה אחת. כדור החוף הזה מתגלגל קדימה במהירות של 2 יחידות לשנייה, בעוד הרוח נושבת אותו ימינה במהירות של יחידה אחת לשנייה:

Vector3 roll = new Vector3(0, 0, 2);
Vector3 wind = new Vector3(1, 0, 0);

void Update()
{
    Vector3 move = roll + wind;   // (1, 0, 2)
    transform.position += move * Time.deltaTime;
}

כפל של וקטור במספר מכפיל כל אחד מרכיביו: wind * 3 הוא (3, 0, 0), כלומר סופה, ו-move * Time.deltaTime ממיר תנועה לשנייה לתנועה של הפריים הזה. גם חיסור מתבצע רכיב אחר רכיב, ו-a - b הוא הצעד שמוביל מנקודה b לנקודה a. אין * בין שני וקטורים: הביטוי roll * wind לא יתקמפל.

challenge icon

אתגר

קל

הנהר סוחף את הסירה, והחץ למעלה מוסיף לה את כוח המנוע שלה.

  1. ב־Update(), התחל עם Vector3 move = current;.
  2. כל עוד Input.GetKey(KeyCode.UpArrow) הוא true, הוסף את motor אל move באמצעות +=.
  3. הוסף את move * Time.deltaTime אל transform.position.

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

נסו בעצמכם

using UnityEngine;

public class Boat : MonoBehaviour
{
    public Vector3 current = new Vector3(0, 0, 0);
    public Vector3 motor = new Vector3(0, 0, 0);

    void Update()
    {
        // הזרם תמיד סוחף את הסירה.
        // כל עוד מקש החץ למעלה לחוץ, גם המנוע דוחף את הסירה.
    }
}

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

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