Si Penangkap
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 50 dari 85.
Bab ini membuat game kecil, Catch the Star, dengan satu fitur di setiap pelajaran: sebuah bintang jatuh, kamu menggeser penangkap ke kiri dan kanan di bawahnya, setiap tangkapan menambah skor dan membuat bintang berikutnya jatuh lebih cepat, dan tiga kali meleset mengakhiri game. Semuanya ada dalam satu skrip, Catcher, pada penangkap. Fitur pertama adalah pergerakan: penangkap bergerak dengan tombol panah dan tidak pernah meninggalkan lantai.
Menjaga angka tetap dalam batas adalah tugas Mathf.Clamp(value, min, max). Fungsi ini mengembalikan min saat nilai berada di bawah min, max saat nilai berada di atas max, dan nilai itu sendiri dalam kondisi lain. Kamera ini mengikuti pemain menaiki menara, tetapi ketinggiannya tetap di antara 2 dan 12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp mengembalikan angka baru dan tidak mengubah apa pun dengan sendirinya, jadi tetapkan hasilnya. Lakukan clamp setelah semua perubahan pada frame dan sebelum kamu menuliskan kembali posisi, agar tidak ada frame yang menampilkan objek melewati batasnya.
Tantangan
SedangBeri catcher, bilah biru, gerakan.
- Di
Update(), salintransform.position.xkefloat x, lalu tambahkan atau kurangispeed * Time.deltaTimesesuai tombol panah yang ditahan. - Jaga agar catcher selebar 2 unit tetap berada di lantai (x dari -5 hingga 5):
x = Mathf.Clamp(x, -4f, 4f);. - Tulis kembali
xketransform.position, dengan mempertahankan y dan z.
Tekan tombol “Main” dan tahan tombol panah: catcher akan berhenti di tepi. Lalu tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// Tombol panah: geser sepanjang sumbu x dengan kecepatan speed unit per detik.
// Jaga agar seluruh catcher tetap di lantai (x dari -5 hingga 5, lebar catcher adalah 2).
}
}
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