המרחק בין עצמים
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 28 מתוך 85.
Vector3.Distance(a, b) היא המרחק בין שתי נקודות, ביחידות, הנמדד בקו ישר לאורך שלושת הצירים. זהו אורך הצעד ביניהן, (a - b).magnitude, ולכן לסדר של a ו־b אין חשיבות. מהנקודה (0, 0, 0) לנקודה (3, 0, 4) המרחק הוא 5.
השוואת מרחק למספר מאפשרת לסקריפט לדעת מתי משהו קרוב. החניך הזה יכול לחמם את ידיו רק במרחק של עד 4 יחידות מהמדורה, שאת מיקומה מגדירים ב־Inspector:
public Vector3 campfire = new Vector3(3, 0, 4);
void Update()
{
float d = Vector3.Distance(transform.position, campfire);
if (d < 4f && Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("You warm your hands");
}
}המרחק כולל גם את הגובה: חניך שנמצא 5 יחידות מעל האש נמצא במרחק 5 יחידות ממנה, ולא 0. כשלא רוצים שהגובה ייחשב, משווים בין שתי נקודות בעלות אותו ערך y.
אתגר
קלהאט את ההולך לחצי מהמהירות בביצה.
- מתחת ל־
float s = speed;, כתובif (Vector3.Distance(transform.position, swamp) < 3f). - בתוכו, הגדר
s = speed / 2;. השאר את שדהspeedואת שורות התנועה כפי שהם.
לחץ על "שחק" והתקדם ישר דרך הביצה: ההולך מאט בתוכה. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
public Vector3 swamp = new Vector3(0, 0.5f, 0);
void Update()
{
float s = speed;
// במרחק של עד 3 יחידות מהביצה, זוז בחצי מהירות.
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
transform.position += direction.normalized * s * Time.deltaTime;
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין