חיבור וקטורים
חלק מהיחידה יסודות הסקריפטים ב-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 לא יתקמפל.
אתגר
קלהנהר סוחף את הסירה, והחץ למעלה מוסיף לה את כוח המנוע שלה.
- ב־
Update(), התחל עםVector3 move = current;. - כל עוד
Input.GetKey(KeyCode.UpArrow)הוא true, הוסף אתmotorאלmoveבאמצעות+=. - הוסף את
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
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין