Menu
CoddyTech

Tekrar: Çift Zıplama

Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 43 / 60.

Bu bölümde bir CharacterController elle hareket ettirildi: yürüme için Move, bir alanda tutulan yer çekimi ve yüksekliğine göre hesaplanan zıplamalar. Kahraman havadayken bir kez daha zıplayabilir.

challenge icon

Görev

Orta

Kahramana bir zıplama ve havada bir zıplama ver. Yürüme kodu yazılmış durumda.

  1. Önce, yerdeyken: airJumpUsed = false yap ve düşüyorsa verticalSpeed değerini -2f yap.
  2. Input.GetButtonDown("Jump") olduğunda: yerdeyse verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; değilse ve !airJumpUsed ise airJumpHeight ile aynısını yap ve airJumpUsed değerini ayarla.
  3. Ardından gravity * Time.deltaTime değerini verticalSpeed değerine ekle.

“Oyna”ya bas ve çift zıplayarak çıkıntıya çık. Ardından “Kontrol et”e bas.

Kendin dene

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()
    {
        // Yerdeyken sıfırla, Space ile zıpla veya havada zıpla, ardından yerçekimini ekle

        Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")) * speed;
        move.y = verticalSpeed;
        controller.Move(move * Time.deltaTime);
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground