הכדור המתגלגל
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 28 מתוך 71.
בפרק הזה נבנה משחק קטן, Coin Rush. מגלגלים כדור ברחבי זירה מוקפת קירות בעזרת מקשי החצים ואוספים מטבעות לפני שהזמן אוזל. שני סקריפטים מתחלקים בעבודה, כפי שהיו עושים בפרויקט Unity: Ball מזיז את הכדור ואחראי גם על הניקוד ועל השעון, ו-Coin נמצא על כל מטבע. Coin.cs מתחיל כמחלקה ריקה, ובשיעור הבא נמלא אותה.
כדור מתגלגל כשדוחפים אותו במקום להציב אותו במיקום אחר. דחפו את ה-Rigidbody שלו באמצעות AddForce והשאירו את הסיבוב שלו חופשי: הכוח מזיז את הכדור, והחיכוך עם הרצפה אוחז בתחתית הכדור וגורם לו להסתובב. כדור הבאולינג הזה מתגלגל לאורך המסלול שלו כל עוד מקש הרווח לחוץ:
public float push = 6f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
if (Input.GetKey(KeyCode.Space))
{
rb.AddForce(Vector3.forward * push);
}
}כדור שמתגלגל בלי להחליק מסתובב במהירות השווה למהירותו חלקי הרדיוס שלו, ולכן כדור ברדיוס 0.5 שנע במהירות של 3 יחידות לשנייה מסתובב במהירות של 6 רדיאנים לשנייה (rb.angularVelocity). אם תשנו במקום זאת את transform.position, או תקפיאו את הסיבוב שלו תחת Constraints של ה-Rigidbody, הוא יחליק כמו דיסקית בלי להסתובב. כדור פשוט בצבע אחיד נראה אותו הדבר בשני המקרים: כדי לראות את הגלגול, צפו ב-Angular Velocity שביחידת Info של ה-Rigidbody בזמן שהמשחק פועל.
אתגר
בינוניהתחילו את Coin Rush: גלגלו את הכדור באמצעות החצים.
- ב־
Start()שלBall.cs, הגדירוrb = GetComponent<Rigidbody>();. - ב־
FixedUpdate(), קראו אתfloat x = Input.GetAxis("Horizontal");ואתfloat z = Input.GetAxis("Vertical");, ואז קראו ל־rb.AddForce(new Vector3(x, 0f, z) * force);.
לחצו על "שחק", לחצו על המשחק וגלגלו: הכדור פונה בזמן שהוא נע. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
private Rigidbody rb;
void Start()
{
}
void FixedUpdate()
{
// הזיזו את הכדור בעזרת החצים: Horizontal לאורך ציר x, Vertical לאורך ציר z.
}
}
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוףתרגלו בעצמכם: Unity אונליין