Menu
CoddyTech

Kecepatan Diagonal

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 27 dari 85.

Tahan tombol panah kanan dan atas secara bersamaan, lalu sumbu mentah menghasilkan arah (1, 0, 1). Panjangnya, .magnitude, adalah akar kuadrat dari 1 + 1, sekitar 1.41. Pejalan yang bergerak mengikutinya menempuh 1.41 unit secara diagonal dalam waktu yang sama dengan waktu untuk menempuh 1 unit lurus ke depan: 41% lebih cepat.

.normalized menghasilkan salinan vektor yang menunjuk ke arah yang sama dan panjangnya tepat 1 unit: (1, 0, 1) menjadi sekitar (0.71, 0, 0.71), dan (0, 0, 5) menjadi (0, 0, 1). Jika dikalikan dengan kecepatan, vektor ini membuatnya bergerak dengan kecepatan tersebut ke arah mana pun. Lebah ini terbang menuju bunga dengan kecepatan 2 unit per detik, baik bunganya jauh maupun dekat. Tanpa .normalized, lebah akan terbang lebih cepat jika bunganya lebih jauh:

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 tetap (0, 0, 0), karena nol tidak memiliki arah. v.normalized membiarkan v tetap seperti semula; v.Normalize() mengubah v itu sendiri.

challenge icon

Tantangan

Mudah

Buat walker bergerak dengan kecepatan yang sama saat bergerak diagonal.

  1. Di dalam Update(), buat Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));.
  2. Tambahkan direction.normalized * speed * Time.deltaTime ke transform.position.

Tekan tombol “Main” dan tahan dua tombol panah: walker bergerak diagonal dengan kecepatan yang tidak melebihi kecepatan saat bergerak lurus. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

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

    void Update()
    {
        // Tombol panah atau WASD: bergerak sepanjang sumbu x dan z dengan kecepatan yang sama, termasuk saat bergerak diagonal.
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity