Sumbu
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 20 dari 85.
Input.GetAxis("Horizontal") mengubah tombol panah kiri dan kanan (serta A dan D) menjadi satu angka dari -1 hingga 1: -1 untuk kiri, 1 untuk kanan, 0 jika tidak ada yang ditekan. Input.GetAxis("Vertical") melakukan hal yang sama untuk tombol panah bawah dan atas (S dan W). Satu pemanggilan menggantikan dua if, dan stik gamepad mengendalikan sumbu yang sama tanpa kode tambahan.
Angkanya tidak langsung berubah. Dengan pengaturan default Unity, angkanya bergerak menuju targetnya dengan kecepatan 3 per detik, jadi perlu sepertiga detik untuk mencapai 1 setelah tombol ditekan dan sepertiga detik lagi untuk kembali ke 0 setelah tombol dilepas. Perubahan bertahap ini membuat hovercraft melaju dengan lembut lalu meluncur hingga berhenti:
public float speed = 5f;
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}Input.GetAxisRaw("Horizontal") melewati perubahan bertahap: nilainya tepat -1, 0, atau 1 pada setiap frame, jadi gerakan langsung dimulai dan berhenti. Gunakan GetAxis untuk hal-hal yang seharusnya terasa berat dan GetAxisRaw untuk kontrol yang responsif. Jika kedua tombol panah ditekan, keduanya menghasilkan 0 karena kedua arah saling meniadakan. (Dalam proyek Unity 6, pengaturan Active Input Handling dari Steer with the Keys juga berlaku untuk sumbu.)
Tantangan
MudahBuat rover bergerak dengan respons yang cepat, tanpa perlambatan.
- Di
Update(), bacafloat h = Input.GetAxisRaw("Horizontal");danfloat v = Input.GetAxisRaw("Vertical");. - Tambahkan
new Vector3(h * speed * Time.deltaTime, 0, v * speed * Time.deltaTime)ketransform.position.
Tekan tombol “Main”, klik game lalu kendalikan rover dengan tombol panah atau WASD: rover langsung mulai dan berhenti. Lalu tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Horizontal menggerakkan sepanjang sumbu x, Vertical sepanjang sumbu z, tanpa pergerakan bertahap.
}
}
Semua pelajaran di Dasar-Dasar Scripting Unity
1Dasar-Dasar C# di Unity
Halo, UnityVariabelDesimal Memerlukan fTeks di ConsoleVariabel yang Menyimpan NilaiIf dan ElseBandingkan AngkaUlasan: Pengumpul Koin7Perulangan dan method
Ulangi dengan forPerulangan di dalam perulanganTulis methodMethod yang Mengembalikan NilaiarrayUlasan: Tangga10Menemukan Benda
Cari Berdasarkan NamaTagCari Berdasarkan TipeReferensi Lebih Baik daripada FindNull di UnityRangkuman: Koin Terdekat13Proyek: Hindari Balok
Karakter PelariBalok dari Langit2Buat Bergerak
Tempatkan KubusBergerak Setiap FrameBerputar Setiap DetikKemudikan dengan TombolRangkuman: Kemudikan Kubus5Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak AntarobjekVector3 adalah StructRangkuman: Pilot Drone8GameObjects dan Komponen
Referensi di InspectorAmbil KomponenKomponen yang HilangTambahkan KomponenRequireComponentTampilkan dan SembunyikanRingkasan: Sakelar Lampu6Transformasi dan Hierarki
Objek Induk dan AnakKibarkan BenderaSkalaMelihat BendaBergerak Menuju TitikRekap: Bulan yang MengorbitLatihan sendiri: Playground Unity