Kecepatan Diagonal
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 20 dari 67.
Tahan panah kanan dan atas secara bersamaan, maka sumbu mentah memberikan arah (1, 0, 1). Panjangnya, .magnitude, adalah akar kuadrat dari 1 + 1, sekitar 1.41. Karakter yang bergerak dengan vektor ini menempuh 1.41 unit secara diagonal dalam waktu yang sama dengan waktu untuk menempuh 1 unit lurus ke depan: 41% lebih cepat.
.normalized memberikan 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). 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 semakin cepat saat bunga semakin 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.
Tantangan
MudahTulis pergerakan walker. Tombol panah (atau WASD), yang dibaca menggunakan sumbu mentah, menggerakkannya ke kiri dan kanan sepanjang sumbu x, serta ke atas dan bawah sepanjang sumbu z. Walker bergerak dengan kecepatan speed unit per detik ke segala arah, termasuk diagonal, langsung mulai dan berhenti, serta tetap diam saat tidak ada tombol yang ditekan.
Tekan Mainkan, berjalanlah lurus dan secara diagonal, lalu tekan 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.
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar Scripting Unity
1Skrip Pertamamu
Halo, UnityLetakkan KubusBergerak di Setiap FrameBerputar Setiap DetikKendalikan dengan TombolRingkasan: Kendarai Kubus4Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak antara BendaVector3 adalah StructRingkasan: Pilot Drone7Proyek: Tangkap Bintang
Si PenangkapBintang Jatuh5Transformasi dan Hierarki
Objek Induk dan AnakSkalaMenghadap ke ObjekBergerak Menuju TitikRangkuman: Bulan yang Mengorbit6GameObject dan Komponen
Referensi di InspectorMendapatkan KomponenKomponen yang HilangMenambahkan KomponenRequireComponentTampilkan dan SembunyikanRangkuman: Sakelar Lampu