מבט קדימה
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 49 מתוך 71.
מצלמה שממוקדת בשחקן נע מציגה חלקים שווים מהמקומות שבהם הוא היה ומהמקומות שאליהם הוא מתקדם. במקום זאת, מבט מהצד יכול להקדים אותו: מקמו את המצלמה כמה יחידות לפני השחקן, בצד שאליו הוא נע.
הצד מתחלף כשהשחקן מסתובב, והקדמה שמתהפכת בבת אחת גורמת לכל התצוגה לקפוץ. לכן שמרו את ההקדמה בשדה והחליקו אותה לעבר הערך החדש שלה באמצעות Mathf.MoveTowards, מעט בכל פריים. מצלמת הסירה הזאת מקדימה אותה ב-2 יחידות ומחליקה בקצב של 3 יחידות לשנייה:
float lead;
float heading = 1f; // 1 שט ימינה, -1 שט שמאלה
void LateUpdate()
{
lead = Mathf.MoveTowards(lead, heading * 2f, 3f * Time.deltaTime);
transform.position = new Vector3(boat.position.x + lead, transform.position.y, transform.position.z);
}הכיוון הוא הכיוון שאליו הסירה נעה בפעם האחרונה: השוו את ערך ה-x שלה לערך ה-x שלה בפריים הקודם, והשאירו את הכיוון ללא שינוי בפריים שבו היא לא נעה, כדי שסירה שעומדת במקום תשמור על ההקדמה שלה.
אתגר
בינוניגרום למצלמה הצדית להציג יותר מהמסלול שאליו הדמות הרצה מתקדמת.
- ב־
LateUpdate(), השווה את ערך ה־x של הדמות הרצה ל־lastX: תנועה ימינה קובעת אתdirectionל־1, תנועה שמאלה ל־-1, ובעמידה במקום הערך נשאר ללא שינוי. - החלק את
shift = Mathf.MoveTowards(shift, direction * ahead, shiftSpeed * Time.deltaTime);. - קבע את ערך ה־x של המצלמה ל־
player.position.x + shift, תוך שמירה על ערכי y ו־z.
לחץ על "שחק" ורוץ בשני הכיוונים. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class LookAheadCamera : MonoBehaviour
{
public Transform player;
public float ahead = 3f;
public float shiftSpeed = 4f;
void LateUpdate()
{
// מקם את המצלמה לפני השחקן במרחק של ahead יחידות בכיוון התנועה האחרון שלו, תוך החלקה במהירות shiftSpeed.
transform.position = new Vector3(player.position.x, transform.position.y, transform.position.z);
}
}
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוףתרגלו בעצמכם: Unity אונליין