Penjelasan Gerakan Pemain dalam Unity: Rigidbody dan Collider

Apakah Anda baru mengenal Unity? Ingin mempelajari cara mengambil input dari pemain dan memindahkan karakter di sekitar layar? Kami telah membuat panduan ini untuk menunjukkan tiga cara berbeda yang dapat Anda lakukan untuk mengontrol pergerakan pemain di Unity.


VIDEO MUO HARI INI

GULIR UNTUK LANJUTKAN DENGAN KONTEN

Apakah Anda baru dalam pengkodean atau memiliki beberapa pengalaman, tutorial C # ini akan membuat Anda berdiri, dan karakter Anda pada karakter mereka.

Mari kita mulai.


Pergerakan Pemain dalam Unity: Mengumpulkan Input

Pertama-tama, Anda perlu mengetahui cara menangkap input dari pengguna dan mengubahnya menjadi gerakan dalam game. Persatuan membuat ini sangat mudah selama Anda tahu di mana mencarinya.

Pengaturan proyek kesatuan

Dengan Unity terbuka, klik Sunting di bilah alat atas. Sekarang pilih Pengaturan Proyek. Dari daftar sebelah kiri, pilih Manajer Masukan. Pilih Sumbu, mengisi daftar nilai input. Anda akan ingin melihat Horisontal Dan Vertikal untuk gerakan dasar.

Anda akan menggunakan sumbu ini bersama Masukan.GetAxisRaw(); untuk gerakan dasar di bagian berikutnya.

Pergerakan Pemain dalam Unity Menggunakan Rigidbody dan Collider

Sekarang setelah Anda mengetahui nama sumbu, Anda dapat menggunakannya untuk mengontrol pergerakan pemain.

Dalam proyek Unity Anda Hirarki lihat, klik kanan dan pilih Objek 3D > Kapsul untuk membuat apa yang akan Anda berikan gerakan. Pastikan untuk menggunakan taktik yang sama untuk membuat landasan Pesawat agar Kapsul Anda dapat berdiri.

Pastikan untuk mengatur ulang Mengubah nilai kedua objek, dan gerakkan Kapsul Anda sehingga berdiri di Pesawat. Ubah nama Kapsul Anda menjadi sesuatu seperti “Pemain” untuk memudahkan identifikasi.

Terkait: 5 Bahasa Pengembangan Game Unity: Yang Harus Anda Pelajari?

Klik pada Pemain objek dan, di Inspektur lihat, gulir ke bawah Tambahkan Komponen. Tambah sebuah Tubuh kakulalu tambahkan komponen lain sebagai a Penumbuk Kapsul kali ini. Anda memerlukan komponen ini untuk menambahkan fisika, dan juga gerakan, ke perangkat Anda Pemain.

Kemudian, klik kanan di Skrip map dan Membuat baru Skrip C#. Beri nama skrip ini sesuatu di sepanjang baris “PlayerMovement”. Jika Anda berencana menambahkan beberapa jenis gerakan untuk karakter atau jenis pengontrol yang berbeda, Anda perlu membuat banyak skrip berbeda untuk setiap jenis gerakan. Untuk saat ini, kami akan fokus pada dasar-dasar dan menggunakan satu skrip.

Lihat juga: Apa itu Pemrograman Modular dalam Unity dan Mengapa Penting?

Klik dua kali skrip Anda untuk membukanya. Anda akan bertemu dengan skrip Unity default:

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

Anda dapat menghapus menggunakan System.Collections; Dan menggunakan System.Collections.Generic; karena mereka tidak diperlukan untuk skrip ini.

Dengan itu keluar dari jalan, fokus pada

 public class PlayerMovement : MonoBehaviour { 

untuk sekarang. Di dalam kurung kurawal buka, buat a pelampung publik variabel bernama kecepatan atau sesuatu yang serupa. Ini kecepatan variabel adalah pengali yang akan mengontrol seberapa cepat kita Pemain bergerak setelah beberapa pemrograman lagi. Untuk saat ini, atur kecepatan sama dengan sesuatu seperti 10f.

Anda juga perlu memberi tahu Unity bahwa ada Rigidbody untuk dimanipulasi dalam skrip ini. Ini dilakukan dengan kata kunci Tubuh kaku dan nama variabel—kita akan memilih rb.

 public class PlayerMovement : MonoBehaviour
{
    public float speed = 10f;
    
   Rigidbody rb; //Tells script there is a rigidbody, we can use variable rb to reference it in further script

Itu saja yang perlu Anda tambahkan di bagian ini. Sekarang, lanjutkan ke batal Mulai(). Saat memulai permainan, Anda perlu mengatur rb variabel sama dengan Tubuh kaku pada Pemain seperti itu:

 void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

Sekarang, lihat di batal Pembaruan () fungsi. Ini adalah fungsi yang akan Anda gunakan untuk terus mengambil input dari keyboard pemain, pengontrol, dll. Ingat saat Anda mencentang Pengaturan Proyek untuk Sumbu Masukan? Anda akan menggunakannya di sini.

 void Update()
    {
        float xMove = Input.GetAxisRaw("Horizontal");
        float zMove = Input.GetAxisRaw("Vertical");

        rb.velocity = new Vector3(xMove, rb.velocity.y, zMove) * speed;

    }

Jangan khawatir jika Anda merasa kewalahan saat melompati kode; kami akan menjelaskannya langkah demi langkah. Pertama, buat a mengambang variabel dengan nama seperti xMovedan atur sama dengan Masukan.GetAxisRaw(“Horizontal”);

Masukan.GetAxisRaw(); adalah cara Unity untuk merekam masukan Pemain dari Sumbu Anda temukan di Pengaturan Proyek. Anda dapat membaca lebih lanjut tentang itu di Dokumentasi resmi Unity. “Horisontal” berasal dari Sumbu horisontal nama di Unity. Sumbu ini mengontrol gerakan kiri dan kanan dengan tombol “a” dan “d”.

Seperti yang mungkin bisa Anda tebak sekarang, float zMove = Input.GetAxisRaw("Vertical"); melakukan hal yang sama tetapi untuk tombol “w” dan “s”.

Terkait: Tutorial Unity 3D Terbaik untuk Pemula

Selanjutnya, Anda akan menempatkan itu kecepatan variabel yang Anda buat untuk bermain dan menyelesaikan bagian terakhir dari teka-teki untuk pergerakan pemain di Unity.

 rb.velocity = new Vector3(xMove, rb.velocity.y, zMove) * speed; 

Kembali ke Unity Inspektur tampilan untuk Pemain obyek. Lihatlah Tubuh kaku-di bawah InfoAnda akan melihat nilai Kecepatan. Ini adalah nilai yang Anda targetkan rb.velocity.

Vector3 baru (xMove, rb.velocity.y, zMove) * kecepatanmembuat vektor baru dengan nilai x, y, dan z yang disediakan, lalu mengalikan nilai vektor tersebut dengan kecepatan.

Pastikan untuk menyeret Gerakan Pemain skrip ke Pemain objek di Unity, dan hanya itu! Secara keseluruhan, Anda memiliki skrip C# yang berfungsi yang mengambil input dari pemain dan mengubahnya menjadi gerakan karakter di Unity.

Berikut kode yang sudah selesai:

 using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 10f;

    Rigidbody rb; //Tells script there is a rigidbody, we can use variable rb to reference it in further script

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        float xMove = Input.GetAxisRaw("Horizontal");
        float zMove = Input.GetAxisRaw("Vertical");

        rb.velocity = new Vector3(xMove, rb.velocity.y, zMove) * speed;

    }
}

Catatan: Jika Anda menemukan karakter Anda melakukan lebih banyak kesalahan daripada yang lain, pastikan untuk mengunci rotasi Pemain di Inspektur.

Pelajari dan Hasilkan Lebih Banyak dalam Unity

Sekarang setelah Anda mengetahui cara memprogram pergerakan pemain di Unity dengan komponen Rigidbody dan Collider, apa yang akan Anda pelajari selanjutnya? Mungkin memperluas pengontrol gerakan Anda untuk menambahkan hal-hal seperti meluncur, melompat ganda, dan lebih banyak lagi akan terbukti menghibur dan menarik.

Unity Learn penuh dengan topik menarik untuk memajukan keahlian pengembangan game Anda. Kami percaya salah satu faktor terpenting dalam memperluas pengetahuan Anda tentang pemrograman adalah mempelajari sesuatu yang baru setiap hari. Tetap penasaran dan selamat meretas!

Tags

Related Post