Menu
CoddyTech

Çapraz Hız

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

Sağ ve yukarı ok tuşlarını birlikte basılı tut; ham eksenler yönü (1, 0, 1) olarak verir. Uzunluğu, .magnitude, 1 + 1'in kareköküdür; yaklaşık 1,41 eder. Bu vektörle hareket eden bir yürüyüşçü, düz ilerleyerek 1 birim aldığı sürede çapraz yönde 1,41 birim yol alır: %41 daha hızlı.

.normalized, aynı yönü gösteren ve uzunluğu tam 1 birim olan bir vektörün kopyasını verir: (1, 0, 1), yaklaşık (0,71, 0, 0,71) olur; (0, 0, 5) ise (0, 0, 1) olur. Hızla çarpıldığında, yön ne olursa olsun o hızla hareket eder. Bu arı, çiçek uzakta da olsa yakında da olsa ona saniyede 2 birim hızla uçar; .normalized olmadan çiçek ne kadar uzaktaysa o kadar hızlı uçardı:

public Vector3 flower = new Vector3(4, 1, 3);
public float speed = 2f;

void Update()
{
    Vector3 toFlower = flower - transform.position;
    transform.position += toFlower.normalized * speed * Time.deltaTime;
}

Vector3.zero.normalized, sıfırın yönü olmadığı için (0, 0, 0) olarak kalır. v.normalized, v değerini değiştirmez; v.Normalize() ise v değerinin kendisini değiştirir.

challenge icon

Görev

Kolay

Yürüyenin çapraz yönlerde de aynı hızda hareket etmesini sağla.

  1. Update() içinde Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")); oluştur.
  2. direction.normalized * speed * Time.deltaTime değerini transform.position değerine ekle.

“Oyna” düğmesine bas ve iki yön tuşunu basılı tut: yürüyen çapraz yönde, düz ilerlediğinden daha hızlı hareket etmez. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

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

    void Update()
    {
        // Ok tuşları veya WASD: x ve z eksenlerinde speed hızında hareket et; çapraz yönlerde de aynı hızı koru.
    }
}

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

Kendi başına pratik yap: Unity playground