מהירות אלכסונית
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 27 מתוך 85.
החזק את החצים ימינה ולמעלה יחד, והצירים הגולמיים נותנים את הכיוון (1, 0, 1). האורך שלו, .magnitude, הוא השורש הריבועי של 1 + 1, בערך 1.41. הולך רגל שנע באמצעותו עובר 1.41 יחידות באלכסון בזמן שהוא עובר יחידה אחת ישר קדימה: מהירות גבוהה ב־41%.
.normalized מחזיר עותק של וקטור שמצביע לאותו כיוון ואורכו בדיוק יחידה אחת: (1, 0, 1) הופך בערך ל־(0.71, 0, 0.71), ו־(0, 0, 5) הופך ל־(0, 0, 1). כשמכפילים אותו במהירות, התנועה היא באותה מהירות בכל כיוון. הדבורה הזאת עפה לעבר הפרח במהירות של 2 יחידות לשנייה, בין שהפרח רחוק ובין שהוא קרוב; ללא .normalized היא הייתה עפה מהר יותר ככל שהפרח רחוק יותר:
public Vector3 flower = new Vector3(4, 1, 3);
public float speed = 2f;
void Update()
{
Vector3 toFlower = flower - transform.position;
transform.position += toFlower.normalized * speed * Time.deltaTime;
}Vector3.zero.normalized נשאר (0, 0, 0), כי לאפס אין כיוון. v.normalized משאיר את v כפי שהוא; v.Normalize() משנה את v עצמו.
אתגר
קלגרום להולך לנוע באותה מהירות גם באלכסון.
- בתוך
Update(), בנה אתVector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));. - הוסף את
direction.normalized * speed * Time.deltaTimeאלtransform.position.
לחץ על "שחק" והחזק שני מקשי חצים: ההולך ינוע באלכסון במהירות שאינה עולה על מהירותו בתנועה ישרה. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// מקשי החצים או WASD: תנועה לאורך x ו-z במהירות speed, זהה גם בתנועה אלכסונית.
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין