Dipelopori di beberapa video game paling awal di dunia, kesehatan adalah mekanisme umum yang bertahan di banyak judul paling populer saat ini. Kesehatan memungkinkan untuk menggunakan mekanisme pertarungan yang rumit, membuat perkembangan pemain, dan membuat game Anda lebih intuitif. Tapi bagaimana Anda menambahkan sistem kesehatan ke gim Anda sendiri?
Unity3D memudahkan untuk menambahkan elemen UI 2D ke game 3D, jadi ini adalah tempat yang bagus untuk mulai menjelajahi bar kesehatan untuk pertama kalinya.
Apa yang Akan Anda Pelajari
Di permukaan, proyek ini mungkin tidak tampak rumit. Meskipun demikian, Anda harus memahami beberapa konsep pengkodean Unity3D utama untuk membuat bilah kesehatan yang berfungsi. Artinya, ada banyak hal yang dapat dipelajari saat Anda menjalani proyek ini, termasuk:
- Cara membuat elemen/sprite UI 2D di Unity3D.
- Cara mengedit komponen objek game dengan kode.
- Cara berbagi variabel antar skrip di Unity3D.
Langkah 1: Siapkan Adegan Anda
Sebelum Anda dapat mulai mengkode bilah kesehatan Anda, Anda memerlukan adegan dengan model pemain untuk diterapkan. Untuk memulai, Anda dapat mengikuti kami panduan pengontrol karakter Unity3D berbasis fisika untuk membuat model pemain dengan kontrol dasar.
Dengan model adegan dan pemain, saatnya untuk menambahkan elemen UI. Klik kanan di dalam jendela Hirarki dan pilih UI > Gambar. Ini akan membuat dua item baru dalam hierarki Anda: objek induk Canvas dan objek anak Gambar. Ubah nama objek anak menjadi Healthbar. Pilih lebar, tinggi, dan posisi bilah kesehatan Anda menggunakan inspektur.
Anda dapat menambahkan gambar UI yang sedikit lebih besar dengan warnanya diatur ke hitam untuk bertindak sebagai latar belakang/batas bilah kesehatan. Pastikan itu berada di atas bilah kesehatan dalam hierarki sehingga ditampilkan di belakangnya.
Elemen UI ini berfungsi sebagai dasar untuk bilah kesehatan Anda, tetapi Anda juga membutuhkan sprite untuk menganimasikannya. Buka panel Proyek, klik kanan, dan pilih Membuat > 2D > Sprite > Persegi.
Pilih Bilah Kesehatan dari hierarki dan seret sprite yang baru saja Anda buat ke dalam kotak pilihan Gambar Sumber di dalam inspektur. Anda juga bisa berubah Jenis Gambar untuk Diisi, Isi Metode ke Horisontal, dan Isi Asal ke kiri. Sekarang jika Anda menjalankan game dan menggunakan Isi Jumlah slider Anda akan melihat bar kesehatan Anda menyusut dan tumbuh.
Jika Anda tidak dapat melihat menu komponen UI, buka Jendela > Manajer Paket, dan pastikan Anda telah menginstal paket 2D.
Langkah 2: Tambahkan Variabel Kesehatan
Tidak akan ada gunanya membuat bilah kesehatan tanpa variabel kesehatan untuk menentukan kondisinya. Skrip lain harus dapat mengakses variabel ini, dan masuk akal untuk meletakkannya di tempat yang sentral. Tambahkan ke skrip Kontrol Karakter sebagai pelampung publik:
publikmengambang kesehatan pemain = 1.0f;
Menggunakan float untuk variabel ini berarti Anda dapat dengan mudah mewakili persentase apa pun dari 0 hingga 100, untuk mencocokkan variabel Jumlah Pengisian gambar UI bilah kesehatan. Misalnya, kesehatan pemain 0,5f adalah 50% dari lebar bilah kesehatan.
Langkah 3: Bagikan Variabel Antar Skrip di Unity
Variabel biasanya beroperasi dalam fungsi dan skripnya sendiri. Ini membuatnya tidak dapat diakses dari fungsi dan skrip lain kecuali Anda mengambil langkah untuk memberi tahu kode di mana menemukan variabel yang ingin Anda kerjakan.
Mulailah dengan membuat file skrip baru bernama Kesehatan untuk menyimpan kode. Anda dapat menarik dan melepaskan skrip ini ke elemen UI Healthbar yang dibuat pada langkah pertama. Kode berikut masuk ke fungsi void Update().
Proses ini dimulai dengan menemukan objek game yang memiliki variabel tersebut. Dalam hal ini, itu adalah objek Character_Model :
GameObject Character_Model = GameObject. Menemukan("Model_Karakter");
Selanjutnya, saatnya menemukan komponen skrip yang berisi variabel yang perlu Anda kerjakan.
Character_Control character_Control = Karakter_Model. DapatkanKomponen();
Dan, terakhir, Anda dapat mengekstrak variabel spesifik yang Anda cari. Dalam hal ini, itu adalah variabel playerHealth yang Anda tambahkan ke pengontrol karakter Anda. Tetapkan ini ke variabel float dalam skrip saat ini yang disebut currentHealth.
currentHealth = character_Control.playerHealth;
Hanya perlu beberapa baris kode untuk mendapatkan variabel yang Anda butuhkan, dan Anda dapat menerapkan metode ini kapan pun Anda perlu mengakses kesehatan pemain Anda. Kode Anda akan terlihat seperti ini setelah Anda selesai:
menggunakan Sistem. Koleksi;
menggunakan Sistem. Koleksi. Umum;
menggunakan UnityEngine;
menggunakan UnityEngine. UI;publikkelasKesehatan: Perilaku Mono
{
publikmengambang Kesehatan saat ini;ruang kosongAwal()
{
}
ruang kosongMemperbarui()
{
GameObject Character_Model = GameObject. Menemukan("Model_Karakter");
Character_Control character_Control = Karakter_Model. DapatkanKomponen();
currentHealth = character_Control.playerHealth;
}
}
Langkah 4: Programkan Objek Game Bilah Kesehatan UI
Sekarang setelah Anda membuat elemen UI bilah kesehatan dan memiliki akses ke variabel kesehatan pemain, saatnya membuatnya bekerja sama. Untuk memulai, tambahkan variabel statis pribadi yang akan berisi komponen gambar bilah kesehatan Anda:
pribadistatis Bilah Kesehatan Gambar;
Anda kemudian dapat menetapkan komponen gambar ke variabel ini di dalam fungsi void Start(), yang hanya berjalan sekali.
Healthbar = GetComponent();
Sekarang setelah Anda memiliki semua variabel, Anda dapat menggunakan kode dari langkah sebelumnya untuk menyetel lebar isian objek UI bilah kesehatan. Anda tidak perlu melakukan konversi apa pun di sini; jumlah pengisian bar kesehatan dan kesehatan pemain adalah variabel float.
Healthbar.fillAmount = Kesehatan saat ini;
Dengan kode ini, bilah kesehatan Anda akan terisi naik turun berdasarkan variabel kesehatan yang ditemukan di kode Character_Control. Ini agak membosankan, dan pasti bisa dilakukan dengan beberapa warna.
Mulailah dengan menambahkan warna baru untuk membuat bilah kesehatan berwarna hijau muda saat pemain memiliki banyak kesehatan.
Warna hijauKesehatan = baru Warna(0,6f, 1, 0,6f, 1);
Selanjutnya, tambahkan pernyataan if untuk memeriksa apakah kesehatan pemain di atas 0,3f, yaitu 30% atau lebih. Jika lebih tinggi dari 0,3f, atur bilah kesehatan agar sesuai dengan warna yang baru saja Anda tambahkan. Jika di bawah 0,3f, ubah bilah kesehatan menjadi merah.
jika (kesehatan saat ini >= 0,3f) {
Healthbar.color = hijauKesehatan;
} kalau tidak {
Healthbar.color = Warna.merah;
}
Langkah 5: Menguji Kode
Seperti yang dapat Anda lihat dari kode lengkap di bawah ini, proyek ini cukup sederhana jika digabungkan. Namun, tentu saja, Anda memerlukan cara untuk menguji kode Anda.
menggunakan Sistem. Koleksi;
menggunakan Sistem. Koleksi. Umum;
menggunakan UnityEngine;
menggunakan UnityEngine. UI;publikkelasKesehatan: Perilaku Mono
{
pribadistatis Bilah Kesehatan Gambar;
publikmengambang Kesehatan saat ini;ruang kosongAwal()
{
Healthbar = GetComponent();
}ruang kosongMemperbarui()
{
GameObject Character_Model = GameObject. Menemukan("Model_Karakter");
Character_Control character_Control = Karakter_Model. DapatkanKomponen();
currentHealth = character_Control.playerHealth;
Healthbar.fillAmount = Kesehatan saat ini;Warna hijauKesehatan = baru Warna(0,6f, 1, 0,6f, 1);
jika (kesehatan saat ini >= 0,3f) {
Healthbar.color = hijauKesehatan;
} kalau tidak {
Healthbar.color = Warna.merah;
}
}
}
Anda dapat menambahkan satu baris kode ke skrip Character_Control untuk memungkinkan pengujian. Setiap kali pemain menekan tombol W untuk bergerak maju, keluarkan sedikit kesehatan. Anda dapat menambahkan kode yang sama ke skrip apa pun dengan akses ke variabel playerHealth untuk hasil yang sama:
kesehatan pemain -= 0,001f;
Anda juga dapat mempertimbangkan untuk menambahkan aset unik ke proyek Unity Anda. Kamu bisa temukan aset Unity gratis di seluruh web, memberi Anda kesempatan untuk menghidupkan proyek Anda tanpa harus mengeluarkan uang.
Membangun Bar Kesehatan di Unity3D
Gim Anda mulai terbentuk sekarang setelah Anda memiliki bilah kesehatan untuk karakter Anda. Masih banyak pekerjaan yang harus dilakukan, tetapi Anda sekarang harus memiliki beberapa keterampilan utama yang Anda perlukan untuk mulai membuat kemajuan nyata. Namun, tentu saja, tidak ada salahnya untuk membaca lebih banyak panduan.