הזירה
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 59 מתוך 71.
בפרק הזה נבנה את Arena Escape. מתחמקים מציידים בזירה מוקפת חומה, בזמן שנגלים של ציידים זורמים פנימה; שלוש פגיעות מסיימות את הריצה, וכשהגל האחרון מסתיים נפתח יציאה. במשחק יש חמישה סקריפטים, שכבר נמצאים בפרויקט מההתחלה: Player, Hunter, Spawner, Health ו־Exit. ארבעת האחרונים ריקים כרגע, ובכל שיעור ממלאים אחד מהם.
השחקן נע באמצעות כוחות במקום לקבוע את המהירות שלו, כך שההדיפה של צייד מתווספת לתנועה שלו במקום להתאפס. דחיפה לבדה הייתה מאיצה אותו לנצח, לכן linearDamping מפחית חלק מהמהירות שלו בכל צעד: דחיפה קבועה מתייצבת במהירות מרבית של בערך התאוצה חלקי הריסון. מזחלת הרחף הזאת נדחפת קדימה כל עוד מקש הרווח מוחזק:
[SerializeField] private float accel = 12f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
rb.linearDamping = 2f;
}
void FixedUpdate()
{
if (Input.GetKey(KeyCode.Space))
{
rb.AddForce(transform.forward * accel, ForceMode.Acceleration);
}
}עם תאוצה של 12 וריסון של 2, המהירות המרבית של המזחלת מתייצבת על קרוב ל־6 יחידות בשנייה, וכשמפסיקים ללחוץ על מקש הרווח, הריסון עוצר אותה במקום לתת לה להמשיך לגלוש לנצח. ForceMode.Acceleration מתעלם מהמסה, ולכן מזחלת כבדה מאיצה בדיוק כמו מזחלת קלה. לקוליידר של המזחלת יש PhysicsMaterial נטול חיכוך: עם חיכוך מהרצפה נוסף על הריסון, המהירות המרבית שלה הייתה נמוכה יותר.
אתגר
בינוניהתחל את Arena Escape: השחקן מחליק בעזרת כוחות.
- ב־
Start(), אחרי שורתGetComponent, הגדרrb.linearDamping = accel / topSpeed;, כך שהמהירות תתייצב בקרבתtopSpeed. - ב־
FixedUpdate(), בנה אתnew Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")). - העבר את
normalizedשלו כפולaccelאלrb.AddForceעםForceMode.Acceleration.
לחץ על "שחק" והחלק ברחבי הזירה. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] private float accel = 18f;
[SerializeField] private float topSpeed = 6f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// הגדר את השיכוך, ואז הנע את השחקן באמצעות מקשי החצים
}
}
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוףתרגלו בעצמכם: Unity אונליין