הכדור המתגלגל
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 27 מתוך 63.
בפרק הזה בונים משחק קטן, 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 עם הכדור. המפקח נותן ל-Ball כוח force בעוצמה 10.
- ב-
Start(), שמור את ה-Rigidbodyשל הכדור בתוךrb. - ב-
FixedUpdate(), דחוף את הכדור באמצעות החצים:Input.GetAxis("Horizontal")לאורך ציר x ו-Input.GetAxis("Vertical")לאורך ציר z, ובשני המקרים בעוצמתforce. - השאר את הסיבוב שלו חופשי כדי שיוכל להתגלגל.
השאר את Coin.cs כמו שהוא לעת עתה. לחץ על Play, לחץ על המשחק והתגלגל ברחבי הזירה, ואז לחץ על Check.
נסו בעצמכם
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פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוף