Pengawal watak adalah skrip yang menjadikan watak anda bergerak. Agar watak anda bergerak, anda memerlukan skrip yang memberitahu pengawal watak anda apa yang harus dilakukan.
Mula-mula anda memerlukan aset daripada Gedung Aset. Watak anda mempunyai satu Penyekat sprite. Anda juga memerlukan kamera utama dan pelbagai jubin yang memasang tahap anda. Platform harus mempunyai pelanggar. Di samping itu, seseorang harus Collider hadir ke lantai dan beberapa grafik latar belakang.
Mula-mula anda memerlukan pengawal watak. Anda tampalkan ini ke folder pilihan anda di Unity. Pilih pemain dan tambahkan skrip di sana.
Ia kelihatan seperti ini:
Pelbagai tetapan untuk watak boleh dibuat di sini. Anda mempunyai pilihan untuk melaraskan daya lompatan, kelajuan itik dalam bentuk "kelajuan crouch", dan kelancaran pergerakan. Pastikan untuk mengaktifkan Kawalan Udara. Gunakan pilihan "Apakah Ground" untuk menetapkan permukaan watak anda berjalan. Sebagai contoh, pilih semua di sini dan kemudian alih keluar pemain. Pilih seperti di bahagian atas sebelah kanan Layer pemain.
Kemudian ada tiga lagi ruang kosong:
Pemeriksaan Tanah: Ia diperiksa sama ada tokoh bermain di tanah.
Pemeriksaan Siling: Semasa anda berjongkok, pemeriksaan dibuat untuk melihat apakah ada selimut di atas kepala anda
Untuk membuat pemeriksaan mungkin, anda memerlukan objek kosong yang menentukan di mana. Buat objek pertama melalui Buat -> Objek Kosong dan salin dengan Ctrl + D. Pindahkan objek masing-masing ke bahagian paling atas gambar dan ke bahagian bawah. Namakan objek Atas Ceiling Check dan objek bawah Ground Check.
Seret ini ke slot pemain masing-masing.
Seterusnya, tambah satu Jasad tegar Tambahkan 2D untuk menambah fizik pada watak anda.
Watak anda harus mempunyai graviti yang lebih tinggi daripada objek permainan yang lain. Jadi tingkatkan graviti menjadi, misalnya, 3.
Di samping itu, watak anda hendaklah sentiasa lurus dan tidak berpusing. Oleh itu, pilih kekangan dan tetapkan putaran pada paksi-Z.
Seterusnya, watak anda memerlukan collider, jika tidak, ia akan jatuh melalui skrin. Anda boleh bekerja dengan collider yang berbeza mengikut gambar. Ini juga dapat menjadikan permainan terasa lebih realistik. Anda boleh menggunakan collider bulat dan collider kotak, misalnya. Anda mempunyai pilihan untuk menambahkan collider bulatan. Pertama, sesuaikan kotak collder dan tambahkan atau sesuaikan bulatan collider.
Sekarang anda boleh menambahkan skrip PlayerMovement anda:
Pergi ke Tambah Komponen–> Masukkan PlayerMovement dan pilih Skrip Baru dan Buat dan Tambah.
Klik dua kali untuk membukanya dalam Visual Studio.
Sekiranya skrip berwarna kelabu, klik kanan pada Inspector di bahagian atas dan pilih mod Debug. Kemudian anda boleh membuka dokumen dengan Visual Studio.
Seluruh perkara sekarang kelihatan seperti ini:
Pertama, rujukan dari skrip PlayerMovement ke pengawal watak diperlukan. Ini memberitahu mereka apa yang harus berlaku pada watak itu.
Anda memerlukan talian berikut:
pengawal awam CharacterController2D;
Kemudian Character Controller 2D muncul dalam Skrip Pergerakan Pemain:
Di sana anda boleh menyeret dan melepaskan skrip pengawal watak anda ke dalamnya.
Adakah anda tidak membenarkan Kemas kini () {
pengawal.Move (); Sekiranya anda menulis, anda akan memberitahu sistem untuk memindahkan watak anda.
Tetapi itu tidak mencukupi. Anda harus menentukan di mana anda mahu watak anda bergerak, serta arah dan kelajuannya. Untuk ini, kawalan pemain perlu dilakukan. Oleh itu, anda menambah perkara berikut:
Untuk input dari pemain, anda memerlukan kelas input:
Input.GetAxosRaw ("Mendatar")
Nilai biasanya antara -1 dan 1. Itu bergantung pada input pengguna.
Anak panah kiri atau kekunci A bermaksud -1.
Anak panah kanan atau D bermaksud 1.
Ini juga berlaku untuk pengawal.
Anda juga memerlukan arahan Debug.Log:
Perintah Debug.log ini menghantar mesej ke konsol.
Pada akhirnya garis seperti ini:
Debug.Log (Input.GetAxisRaw ("Horizontal"));
Konsol bertindak balas terhadap input baru. Sekiranya anda menekan kekunci anak panah ke arah masing-masing, konsol menunjukkan perkara berikut:
Skrip sekarang kelihatan seperti ini:
Sistem kemudian mendaftarkan entri.
Aspek seterusnya yang kita perlukan adalah kemas kini tetap. Dengan input ini, komputer mengemas kini skrin dengan setiap bingkai.
Anda memerlukan input berikut:
batal FixedUpdate ()
{
// Gerakkan watak kita
}
Bahagian ini menguruskan pemindahan input pemain ke watak.
Anda boleh menghapus Mula yang tidak sah.
Oleh itu, anda mempunyai skrip berikut:
Input pengguna mesti dipindahkan dari satu fungsi ke fungsi yang lain. Untuk ini, anda memerlukan pemboleh ubah.
Anda memerlukan talian berikut:
apungan mendatarMove = 0f;
Maka watak harus dipindahkan. Oleh itu, anda menulis perkara berikut di bawah FixedUpdate:
pengawal.Move (horizontalMove);
Dengan pemboleh ubah (horizontalMove) anda menentukan berapa angka yang harus dipindahkan.
Anda juga harus memberitahu sistem bahawa watak itu tidak boleh berjongkok atau melompat.
Salah pertama merujuk kepada meringkuk dan yang kedua salah untuk melompat.
pengawal.Move (horizontalMove, false, false);
Sekarang kepantasan diperlukan:
public float runSpeed = 40f;
Sekarang anda mengalikan input mendatar dengan runSpeed.
horizontalMove = Input.GetAxisRaw ("Horizontal") * runSpeed;
FixedUpdate juga mesti dikalikan dengan Time.fixedDeltaTime:
pengawal.Move (horizontalMove * Time.fixedDeltaTime, false, false);
Fungsi menentukan bahawa pergerakan selalu diperbaiki dalam nilai yang sama.
Skrip selesai untuk pergerakan anda akan kelihatan seperti ini:
Kemas kini tetap bermaksud bahawa fungsi tersebut dapat disebut berkali-kali tanpa hasil lain.
Apabila sosok itu jatuh, ia bergerak sebentar ke tanah. Untuk menghilangkan ini, pilih Rigidbody 2D dari gambar tersebut dan ubah Collision Detection dari Discrete menjadi Continuous. Penyesuaian ini memastikan bahawa angka itu tidak meluncur ke tanah.
Melompat
Sekarang melompat ditambah. Sistem harus membuat angka melompat ketika anda menekan butang tertentu.
Anda memerlukan talian berikut:
jika (Input. GetButtonDown ("Jump))
Maklumat ini juga mesti dipindahkan ke kawasan FixedUpdate. Untuk ini, anda memerlukan pemboleh ubah.
Untuk ini, anda memerlukan pengendali Boolean. Ini bermaksud bahawa hasilnya hanya boleh benar atau salah:
bool jump = salah;
Di samping itu, terdapat syarat bahawa butang lompat mesti ditekan agar watak melompat.
Oleh itu, ia mesti ditambah dengan syarat bahawa:
lompat = benar;
Pemboleh ubah lompat ditambahkan ke kawasan kemas kini tetap. Sekiranya kekunci tidak ditekan, watak itu tidak boleh lagi melompat. Jadi di kawasan kemas kini tetap lompat = salah; tambah.
Skripnya seperti ini:
Sekarang angka anda melonjak.
Anda memerlukan bahan fizik supaya sosok anda tidak tersekat di platform semasa melompat, tetapi meluncur ke bawah dengan lancar.
Untuk melakukan ini, pilih Buat–> Bahan Fizik 2D di tetingkap projek
Tetapan berikut tersedia:
Tetapkan Geseran dan Keangkuhan ke 0.
Pilih pemain dan seret bahan fizik ke dalam slot bahan pada collider.
Sekiranya anda menggunakan lebih banyak collider, tambahkan ini ke collider lain juga.
Bagaimana watak anda merangkak
Input untuk pergerakan watak boleh didapati di tetapan projek Unity.
Pilih pintu untuk melompat dan klik dengan butang tetikus kanan pada "Lompat". Pilih Elemen Array Pendua.
Ini membuat pilihan input lain untuk meringkuk watak anda.
Kekunci alternatif boleh ditentukan untuk susun atur papan kekunci. Ini adalah Butang Positif Alt atau Tombol Positif Alternatif.
The crouching sekarang mesti dimasukkan ke dalam skrip:
Di kawasan kemas kini: jika (Input.GetButtonDown ("Crouch"))
Faktor boolean juga mesti ditambah:
bool crouch = palsu;
Crouch ditambahkan ke kawasan Fixed Update.
Melengkung tidak berfungsi dengan cara yang sama seperti melompat. Anda tidak mahu sosok anda meringkuk sebentar dan kemudian berhenti. Crouching harus berakhir apabila butang untuk crouching dilepaskan. Perwatakan anda hanya boleh meringkuk apabila anda menekan kekunci.
Sekarang anda memerlukan baris berikut:
lain jika (Input.GetButtonUp ("Crouch"))
{
berjongkok = palsu;
Anda memberitahu sistem bahawa jika anda tidak menekan butang, watak anda tidak akan meringkuk.
Sekarang, apabila anda menekan butang crouch, tidak ada yang akan berlaku kerana crouching dilakukan melalui animasi.
Agar crouching berfungsi, pilih collider watak anda dan seret ke dalam Crouch Disable Collider.
Ini memungkinkan untuk membuat gambar anda. Sekarang watak anda sesuai di antara dua tahap. Namun, anda masih memerlukan animasi untuk berjongkok.
Asalnya diposkan 2020-04-16 21:22:43.