Menu
CoddyTech

סיכום: קפיצה כפולה

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

בפרק הזה הזזנו את CharacterController באופן ידני: השתמשנו ב־Move להליכה, שמרנו את כוח הכבידה בשדה וחישבנו את הקפיצות לפי הגובה שלהן. הגיבור מקבל קפיצה נוספת באוויר.

challenge icon

אתגר

בינוני

תנו לגיבור קפיצה וקפיצה אחת באוויר. ההליכה כבר כתובה.

  1. תחילה, כשהדמות על הקרקע: airJumpUsed = false, ואם היא נופלת, verticalSpeed הופך ל--2f.
  2. בעת Input.GetButtonDown("Jump"): כשהדמות על הקרקע, verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; אחרת, אם !airJumpUsed, עושים אותו הדבר עם airJumpHeight, ומגדירים את airJumpUsed.
  3. לאחר מכן, מוסיפים את gravity * Time.deltaTime ל-verticalSpeed.

לחצו על "שחק" ובצעו קפיצה כפולה אל המדף. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

using UnityEngine;

public class Hero : MonoBehaviour
{
    public float speed = 5f;
    public float gravity = -25f;
    public float jumpHeight = 2f;
    public float airJumpHeight = 1.28f;

    CharacterController controller;
    float verticalSpeed;
    bool airJumpUsed;

    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // אפסו על הקרקע, קפצו או בצעו קפיצה באוויר בלחיצה על Space, ואז הוסיפו את כוח הכבידה

        Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")) * speed;
        move.y = verticalSpeed;
        controller.Move(move * Time.deltaTime);
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

תרגלו בעצמכם: Unity אונליין