צירים
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 20 מתוך 85.
Input.GetAxis("Horizontal") הופכת את החצים שמאלה וימינה (וגם את A ו-D) למספר אחד בין -1 ל-1: -1 עבור שמאלה, 1 עבור ימינה, 0 עבור אף אחד מהם. Input.GetAxis("Vertical") עושה את אותו הדבר עבור החצים למטה ולמעלה (S ו-W). קריאה אחת מחליפה שני if, וג'ויסטיק של בקר משחק מפעיל את אותם הצירים בלי קוד נוסף.
המספר לא קופץ. בהגדרות ברירת המחדל של Unity הוא נע לעבר היעד שלו בקצב של 3 לשנייה, כך שלוקח לו שליש שנייה להגיע ל-1 לאחר לחיצה, ועוד שליש שנייה לרדת בחזרה ל-0 לאחר שחרור. ההדרגתיות הזאת גורמת לרחפת הזאת להאיץ בעדינות ולהיסחף עד לעצירה:
public float speed = 5f;
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}Input.GetAxisRaw("Horizontal") מדלגת על ההדרגתיות: בכל פריים הערך הוא בדיוק -1, 0 או 1, ולכן התנועה מתחילה ונעצרת מיד. השתמשו ב-GetAxis לדברים שאמורים להרגיש כבדים, וב-GetAxisRaw לשליטה חדה ומדויקת. כשלוחצים על שני החצים בו-זמנית, שניהם מחזירים 0, כי שני הכיוונים מבטלים זה את זה. (בפרויקט של Unity 6, ההגדרה Active Input Handling מתוך Steer with the Keys חלה גם על הצירים.)
אתגר
קלגרמו לרובר לנסוע בתגובה חדה, ללא האטה הדרגתית.
- בתוך
Update(), קראו אתfloat h = Input.GetAxisRaw("Horizontal");ואתfloat v = Input.GetAxisRaw("Vertical");. - הוסיפו את
new Vector3(h * speed * Time.deltaTime, 0, v * speed * Time.deltaTime)אלtransform.position.
לחצו על "שחק", לחצו על המשחק ונהגו באמצעות החצים או WASD: הרובר מתחיל ונעצר מיד. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Horizontal מניע לאורך ציר x, ו-Vertical לאורך ציר z, ללא החלקה.
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין