Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Pengontrol karakter dapat membantu Anda menerapkan fisika gerakan sederhana dalam gim Anda.

Anda dapat mendekati pengontrol karakter Unity3D dari beberapa sudut. Jika Anda menggunakan perpustakaan dengan kelas dan fungsi yang kuat, membuat pengontrol karakter berbasis fisika bisa menjadi tempat yang menyenangkan untuk memulai pengembangan game Anda.

Langkah 1: Buat Adegan Dengan Objek Pemain & Medan

Setelah Unity terbuka, dan Anda telah membuat proyek baru, Anda dapat memulai dengan menambahkan beberapa objek ke dalam adegan Anda. Anda dapat membuat objek ini dalam urutan apa pun yang Anda suka, tetapi berhati-hatilah untuk memastikan bahwa Anda menggunakan pengaturan yang benar. Meskipun proyek ini dasar, ini adalah cara yang bagus untuk melakukannya mulai dengan Persatuan.

Objek Pesawat 3D untuk Medan

Objek pertama yang ditambahkan ke adegan Anda adalah pesawat. Klik kanan di dalam panel hierarki, arahkan kursor

Objek 3D, dan pilih Pesawat dari daftar. Anda dapat menyesuaikan ukuran bidang untuk menyediakan area pengujian yang lebih besar, tetapi Anda tidak perlu melakukan apa pun untuk itu.

Model Pemutar Objek Kubus

Selanjutnya, saatnya menambahkan kubus ke tempat kejadian untuk bertindak sebagai model pemain. Klik kanan di dalam panel hierarki, arahkan kursor Objek 3D, dan pilih kubus dari menu tarik-turun. Posisikan kubus baru sehingga berada di atas bidang yang juga telah Anda tambahkan. Anda juga perlu menambahkan komponen rigidbody untuk membuat kubus menjadi objek fisika.

Pilih kubus dan pergi ke Inspektur. Klik Tambahkan Komponen di bagian bawah panel, cari rigidbody, dan pilih Tubuh kaku dari daftar saat muncul. Centang Gunakan Gravitasi centang dan biarkan pengaturan lainnya apa adanya.

Kamu dapat menemukan aset Unity gratis secara online untuk merapikan proyek Anda.

Kamera Orang Ketiga

Adegan Anda seharusnya sudah memiliki kamera yang dapat Anda gunakan sebagai kamera orang ketiga. Posisikan kamera sehingga berada dalam posisi orang ketiga yang nyaman di atas kubus Anda. Masuk ke panel hierarki sebelum menyeret dan menjatuhkan kamera ke kubus untuk membuat hubungan orangtua-anak. Kamera akan secara otomatis mengikuti kubus Anda setelah ini selesai.

Tes Cepat

Meskipun adegan Anda belum memiliki kode apa pun, Anda dapat menguji pekerjaan yang telah Anda lakukan sejauh ini. Klik Bermain tombol di bagian atas layar untuk memuat permainan Anda. Anda akan melihat kubus jatuh dan mendarat di atas Pesawat, dan Kamera harus mengikuti kubus saat jatuh.

Langkah 2: Siapkan File C#

Sekarang saatnya membuat file C# sehingga Anda dapat mulai memprogram beberapa gerakan. Buka bagian Proyek, klik kanan, arahkan kursor ke Buat, dan pilih Folder dari daftar. Beri nama folder Script atau yang serupa.

Arahkan ke dalam folder baru Anda dan ulangi prosesnya, tetapi pilih C# Script dari daftar. Anda dapat memberi nama apa pun pada file ini, tetapi ini juga akan menjadi nama fungsi utama di dalamnya. Pastikan C# baru Anda terlihat seperti ini.

menggunakan Sistem. Koleksi;
menggunakan Sistem. Koleksi. Umum;
menggunakan UnityEngine;

publikkelasKarakter_Kontrol: Perilaku Mono {
ruang kosongAwal() {
}

ruang kosongMemperbarui() {
}
}

Langkah 3: Gunakan C# untuk Membuat Gerakan Maju & Mundur Dengan Kecepatan

Sebelum menambahkan fungsi di file skrip Anda, deklarasikan beberapa variabel publik. Pertama adalah Rigidbody untuk menyimpan model pemain. Juga nyatakan pelampung untuk melacak kecepatan gerakan. Variabel-variabel ini berada di kelas utama, di luar fungsi apa pun.

publik tubuh kaku tubuh kaku;
publikmengambang kecepatan;

Selanjutnya, saatnya menambahkan satu baris kode ke fungsi Mulai. Ini menggunakan deklarasi GetComponent untuk menetapkan komponen rigidbody Cube ke variabel rigidbody yang Anda buat.

ruang kosongAwal() {
rigidbody = GetComponent < Rigidbody > ();
}

Sekarang Anda dapat menambahkan beberapa kode yang akan menggerakkan model pemutar Anda. Kode ini bagus dan sederhana; Anda hanya memerlukan dua pernyataan if, satu untuk gerakan maju, dan satu untuk bergerak mundur. Anda dapat menggunakan Masukan. GetKey untuk menentukan kapan tombol ditekan. Dalam hal ini, Anda mencari penekanan tombol W dan S.

Menekan salah satu dari tombol-tombol ini menambah gaya pada rigidbody kubus menggunakan rigidbody. AddForce. Anda dapat menghitung arah dan kecepatan gaya tambahan dengan mengalikan posisi sumbu Z (transform.forward) dengan variabel kecepatan. Tidak ada kelas transform.backward yang dapat Anda gunakan untuk gerakan mundur, tetapi ini dapat dicapai dengan mengalikan transform.forward dengan -1.

jika (Memasukkan. DapatkanKey("w")) {
rigidbody. AddForce (transform.forward * speed);
}

jika (Memasukkan. DapatkanKey("S")) {
rigidbody. AddForce((transform.maju * -1) * kecepatan);
}

Simpan file C# dan arahkan kembali ke Unity. Temukan skrip di dalam panel Proyek dan seret dan lepas ke model karakter Cube di dalam hierarki untuk menetapkan skrip ke objek itu. Saat Anda memilih Cube, Anda akan melihat skrip sebagai komponen di panel Inspektur. Klik di dalam kotak variabel benda tegar dan pilih benda tegar kubus Anda.

Anda sekarang dapat menggunakan tombol Putar untuk meluncurkan game dan menguji kode Anda. Tapi tunggu! Ada masalah; Kubus Anda akan menggelinding bukannya bergerak lurus ke depan. Kembali ke inspektur Cube, temukan komponen Rigidbody, dan centang kotak untuk Bekukan Rotasi pada sumbu X dan Z sebelum meluncurkan game lagi. Sekarang seharusnya berhasil.

Langkah 4: Gunakan C# untuk Membuat Putaran Kiri & Kanan Dengan Torsi

Tidak seperti bergerak mundur dan maju, memutar model pemutar Cube memerlukan gaya yang disebut torsi. Anda memerlukan variabel lain untuk ini: pelampung publik untuk menetapkan nilai torsi.

publikmengambang torsi;

Kode untuk belok kiri dan kanan dalam skrip ini sangat mirip dengan yang digunakan untuk bergerak maju dan mundur juga. Ada sebuah jika pernyataan untuk setiap arah yang mencari penekanan tombol D (belok kanan) atau tombol A (belok kiri).

Langkah pertama dalam setiap pernyataan if adalah menentukan arah belokan menggunakan Input. Metode GetAxis dan tetapkan hasilnya ke variabel float. Setelah ini, gunakan rigidbody. AddTorque untuk menerapkan gaya rotasi ke model karakter Kubus dengan mengalikan torsi, belokan, dan sumbu Z kubus.

jika (Memasukkan. DapatkanKey("D")) {
mengambang putar = masukan. GetAxis("Horisontal");
rigidbody. AddTorque (transform.up * torsi * putaran);
}

jika (Memasukkan. DapatkanKey("A")) {
mengambang putar = masukan. GetAxis("Horisontal");
rigidbody. AddTorque (transform.up * torsi * putaran);
}

Simpan kode Anda dan kembali ke Unity untuk mengujinya. Anda dapat menyesuaikan kecepatan dan waktu ramp-up rotasi model pemutar Anda dengan memilih Cube dan mengedit variabel massa, tarikan, dan torsi benda tegar dalam skrip Anda. Proyek contoh ini bertumpu pada 1 massa, 1 hambatan, dan 2 torsi.

Langkah 5: Gunakan C# untuk Memprogram Jumping

Sebagai elemen terakhir dari pengontrol karakter Unity ini, saatnya untuk membuat lompatan Anda. Membuat lompatan lebih rumit daripada kontrol dasar lain yang pernah Anda kerjakan, mengingat lompatan harus memiliki ketinggian yang terbatas. Mulailah dengan menambahkan variabel boolean pribadi untuk melacak apakah pemain melompat atau tidak.

pribadibool adalah Melompat = PALSU;

Variabel ini tidak akan melakukan apa pun tanpa pernyataan untuk mengujinya. Dalam hal ini, pernyataan if dasar untuk memeriksa apakah variabel salah akan berhasil. Menambahkan kondisi yang sama ke gerakan lain jika pernyataan akan menghentikan pemain bergerak saat melompat.

jika (!melompat) {
}

Menambahkan kondisi yang sama ke gerakan lain jika pernyataan akan menghentikan pemain bergerak saat melompat.

jika (Memasukkan. DapatkanKey("w") && !melompat) {
rigidbody. AddForce (transform.forward * speed);
}

Di dalam pernyataan !isJumping if, Anda memerlukan pernyataan if lainnya, kali ini untuk memeriksa penekanan tombol tombol lompat. Menyetel variabel isJumping ke true adalah hal pertama yang harus dilakukan dalam pernyataan if ini, diikuti dengan membuat deklarasi rigidbody.angularVelocity untuk menghapus gaya yang saat ini diterapkan ke kubus.

Sekarang Anda dapat menggunakan bodi kaku. Deklarasi AddForce untuk menambahkan gaya ke kubus pada sumbu Z-nya, menciptakan gerakan lompatan ke atas. Terakhir, saatnya menggunakan deklarasi pemanggilan untuk memanggil fungsi yang berbeda setelah 0,8 detik.

jika (!melompat) {
jika (Memasukkan. GetKeyDown("ruang angkasa")) {
adalah Melompat = BENAR;
rigidbody. AddForce (transform.up * kecepatan * 120);
rigidbody.angularVelocity = Vector3.zero;
Memohon("Pindahkan_Setter", 0.8 F);
}
}

Fungsi ini mengatur variabel isJumping kembali ke false sehingga gerakan/lompatan dimungkinkan sekali lagi, dan penundaan 0,8 detik menghentikannya dari memicu terlalu cepat.

ruang kosongPindahkan_Setter() {
adalah Melompat = PALSU;
}

Langkah 6: Uji Kode Pengontrol Karakter Anda

Simpan file Anda dan kembali ke Unity untuk menguji kode yang telah Anda tulis. Seperti kebanyakan kompiler, Unity memberikan informasi tentang kesalahan dan masalah lain dengan kode Anda untuk mempermudah melihat apa yang mungkin perlu Anda ubah. Anda dapat melihat kode lengkap untuk proyek ini di kami GitHub halaman.

Membuat Pengontrol Karakter Unity

Anda dapat memilih dari berbagai pendekatan berbeda saat membuat pengontrol karakter di Unity. Menggunakan fisika adalah salah satu opsi, tetapi Anda juga dapat menggunakan sistem pengontrol karakter bawaan jika diinginkan.

Menjelajahi berbagai opsi seperti ini adalah cara yang bagus untuk mempelajari tentang alat seperti Unity.