Menu
CoddyTech

Karakter Pelari

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

Bab ini membuat game kecil, Dodge the Blocks. Kamu mengendalikan pelari di sepanjang jalur sementara balok-balok berjatuhan dari langit, dan satu sentuhan mengakhiri permainan. Seluruh game terdiri dari satu skrip, Runner, yang mendapatkan fitur baru di setiap pelajaran: mengendalikan arah, balok yang berjatuhan, membersihkannya, tabrakan, dan skor.

Fitur pertama adalah kendali arah yang tetap berada di jalur, menggunakan Mathf.Clamp(value, min, max) dari Catch the Star: fungsi ini mengembalikan min saat nilai berada di bawah rentang, max saat berada di atas rentang, dan nilai itu sendiri jika tidak. Posisi clamp itu penting. Pengukur daya ini terisi saat tombol Space ditekan, berkurang saat tombol tidak ditekan, dan selalu berada di antara 0 hingga 10:

[SerializeField] private float charge = 0f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        charge += 4f * Time.deltaTime;
    }
    else
    {
        charge -= 2f * Time.deltaTime;
    }
    charge = Mathf.Clamp(charge, 0f, 10f);
    transform.localScale = new Vector3(0.5f, charge, 0.5f);
}

Clamp diterapkan setelah perubahan. Jika clamp diterapkan lebih dahulu, nilai bisa berakhir satu langkah melewati batas pada akhir frame, dan bilah akan digambar berdasarkan nilai itu. Mathf.Clamp juga mengembalikan angka baru, bukan mengubah variabel yang kamu berikan, jadi tetapkan kembali hasilnya ke variabel tersebut.

challenge icon

Tantangan

Sedang

Mulai Dodge the Blocks: arahkan pelari di sepanjang jalurnya.

  1. Di dalam Update(), salin transform.position ke Vector3 p, lalu tambahkan Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime ke p.x. Sumbu mentah langsung menggerakkan pelari dengan kecepatan penuh.
  2. Tetapkan p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);, lalu transform.position = p;.

Tekan tombol “Main”, klik game, lalu bergeraklah ke kedua ujung: pelari akan berhenti di tepi. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;

    void Update()
    {
        // Gerakkan sepanjang x dengan tombol panah, lalu jaga agar x tetap di jalur
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity