Menu
CoddyTech

Eksenler

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 20 / 85.

Input.GetAxis("Horizontal"), sol ve sağ ok tuşlarını (ve A ile D tuşlarını) -1 ile 1 arasında tek bir sayıya dönüştürür: sol için -1, sağ için 1, hiçbirine basılmadığında 0. Input.GetAxis("Vertical") de aşağı ve yukarı ok tuşları (S ve W) için aynısını yapar. Tek bir çağrı, iki if ifadesinin yerini alır ve gamepad çubuğu da ek kod gerektirmeden aynı eksenleri kontrol eder.

Sayı bir anda değişmez. Unity'nin varsayılan ayarlarında hedef değerine saniyede 3 hızla yaklaşır; bu nedenle bir tuşa basıldıktan sonra 1'e ulaşması saniyenin üçte biri, tuş bırakıldıktan sonra tekrar 0'a inmesi de bir üçte saniye sürer. Bu yumuşak geçiş, hovercraft'ın nazikçe hızlanmasını ve süzülerek durmasını sağlar:

public float speed = 5f;

void Update()
{
    float h = Input.GetAxis("Horizontal");
    transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}

Input.GetAxisRaw("Horizontal") yumuşak geçişi atlar: her karede değer tam olarak -1, 0 veya 1 olur; böylece hareket hemen başlar ve durur. Ağır hissettirmesi gereken şeyler için GetAxis, keskin tepkili kontroller için GetAxisRaw kullan. İki ok tuşuna da basılıyken ikisi de 0 değerini verir; çünkü iki yön birbirini götürür. (Unity 6 projesinde, Tuşlarla Yönlendirme bölümündeki Active Input Handling ayarı eksenler için de geçerlidir.)

challenge icon

Görev

Kolay

Gezgini yumuşatma olmadan, keskin biçimde sür.

  1. Update() içinde float h = Input.GetAxisRaw("Horizontal"); ve float v = Input.GetAxisRaw("Vertical"); değerlerini oku.
  2. new Vector3(h * speed * Time.deltaTime, 0, v * speed * Time.deltaTime) değerini transform.position üzerine ekle.

“Oyna” düğmesine bas, oyuna tıkla ve ok tuşlarıyla ya da WASD ile aracı sür: gezgin anında hareket etmeye başlar ve durur. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Rover : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // Horizontal x ekseni boyunca, Vertical ise z ekseni boyunca, yumuşatma olmadan hareket ettirir.
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground