Menu
CoddyTech

פלטפורמות נעות

חלק מהיחידה בונים משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 49 מתוך 56.

challenge icon

אתגר

בינוני

הפלטפורמה הכחולה צריכה לנוע הלוך ושוב מעל הפער. השאר הכול כפי שהיה בשיעור הקודם.

השלימו את MovingPlatform:

  • שדות שה-Inspector מגדיר, distance (3) ו-speed (1.5), וגם public Vector3 delta.
  • היא נעה מהמקום שבו היא מתחילה לאורך +x למרחק distance יחידות במהירות של speed יחידות לשנייה, ואז חוזרת לנקודת ההתחלה, וכך הלאה לנצח.
  • בכל פריים, delta הוא המרחק שהיא נעה באותו פריים: המיקום שלה אחרי התנועה פחות המיקום שלה לפניה.

CharacterController אינו נישא על ידי המשטח שעליו הוא עומד: על פלטפורמה נעה הוא נשאר במקומו, והפלטפורמה מחליקה מתחתיו. גם הזזה של transform.position שלו לא תעבוד: הקריאה הבאה ל-Move של הבקר מתחילה מהמקום שבו הפיזיקה ראתה אותו בפעם האחרונה, ומבטלת את השינוי. גרמו ל-Player לנוע יחד איתה:

  • הוסיפו את OnControllerColliderHit. כשהנורמל של הפגיעה פונה כלפי מעלה (hit.normal.y גדול מ-0.5: השחקן עומד עליה) ולאובייקט יש MovingPlatform, שמרו את הפלטפורמה בשדה.
  • ב-Update, הוסיפו את delta של הפלטפורמה לתנועה שמועברת אל controller.Move, ואז שכחו את הפלטפורמה (הגדירו את השדה ל-null). הקריאה ל-Move תמצא אותה שוב כל עוד השחקן עומד עליה.

לחצו על Play, קפצו אל הפלטפורמה וסעו עליה, ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

public class MovingPlatform : MonoBehaviour
{
    // בשיעור מאוחר יותר נוסיף כאן את המימוש: פלטפורמה שנעה הלוך ושוב.
}

כל השיעורים ביחידה בונים משחקים אמיתיים