Membuat Pengontrol Orang Pertama di Unity
Tutorial ini akan memandu Anda membuat kontroler orang pertama sederhana di Unity. Kontroler orang pertama memungkinkan pemain menjelajahi dunia 3D dengan gerakan halus dan rotasi kamera. Kami akan menggunakan skrip C# dasar dan komponen CharacterController bawaan Unity.
1. Menyiapkan Adegan
Mulailah dengan menyiapkan lingkungan adegan dasar untuk pengontrol orang pertama Anda:
- Dalam Unity, buat pemandangan 3D baru.
- Buka GameObject > Objek 3D > Bidang untuk membuat permukaan tanah.
- Sesuaikan skala pesawat agar cukup besar agar pemain dapat berjalan-jalan.
- Buka GameObject > Objek 3D > Kubus untuk menambahkan rintangan atau dinding untuk berinteraksi.
2. Menambahkan Objek Pemain
Untuk mewakili pemain, kita akan menggunakan objek kapsul:
- Buka GameObject > Objek 3D > Kapsul untuk menambahkan kapsul ke dalam pemandangan.
- Posisikan kapsul sedikit di atas tanah (misalnya, Posisi = (0, 1, 0)).
- Ubah nama kapsul menjadi Pemain.
- Hapus komponen Capsule Collider karena CharacterController akan menangani tabrakan.
- Tambahkan komponen CharacterController ke objek Player dengan memilih Player, lalu mengeklik Add Component di Inspector dan cari CharacterController.
3. Menulis Skrip Pengendali Orang Pertama
Sekarang, mari membuat skrip untuk menangani pergerakan pemain dan rotasi kamera:
- Di jendela Project, klik kanan dan pilih Create > C# Script. Beri nama FirstPersonController.
- Lampirkan skrip ke objek Pemain dengan menyeretnya dari jendela Proyek ke Pemain dalam Hirarki.
Buka skrip dan ganti isinya dengan kode berikut:
using UnityEngine;
public class FirstPersonController : MonoBehaviour
{
public float moveSpeed = 5f;
public float mouseSensitivity = 2f;
public float gravity = -9.81f;
private CharacterController controller;
private Vector3 velocity;
private Transform cameraTransform;
void Start()
{
controller = GetComponent();
cameraTransform = Camera.main.transform;
cameraTransform.position = new Vector3(transform.position.x, transform.position.y + 1.5f, transform.position.z);
cameraTransform.parent = transform; // Attach camera to player
}
void Update()
{
// Player movement
float moveX = Input.GetAxis("Horizontal") * moveSpeed;
float moveZ = Input.GetAxis("Vertical") * moveSpeed;
Vector3 move = transform.right * moveX + transform.forward * moveZ;
controller.Move(move * Time.deltaTime);
// Apply gravity
if (controller.isGrounded && velocity.y < 0)
{
velocity.y = -2f;
}
velocity.y += gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
// Camera rotation
float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity;
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity;
transform.Rotate(Vector3.up * mouseX);
cameraTransform.Rotate(Vector3.left * mouseY);
}
}
4. Memasang Kamera
Untuk tampilan orang pertama, kamera perlu dipasang ke pemain:
- Pilih Kamera Utama di Hirarki.
- Posisikan sedikit di atas objek Pemain (misalnya, Y = 1,5).
- Seret Kamera ke objek Pemain dalam Hirarki untuk menjadikannya anak dari Pemain. Ini akan membuatnya mengikuti gerakan dan rotasi pemain.
5. Mengonfigurasi Input
Input Manager Unity menggunakan nama sumbu yang telah ditetapkan sebelumnya seperti “Horizontal” dan “Vertikal” untuk gerakan, serta “Mouse X” dan “Mouse Y” untuk input mouse. Ini dikonfigurasi secara otomatis, tetapi Anda dapat menyesuaikan sensitivitas di Edit > Project Settings > Input Manager.
6. Menguji Pengendali
Sekarang pengontrol orang pertama sudah siap, tekan tombol putar untuk mengujinya:
- Gunakan W, A, S, D untuk menggerakkan pemain maju, mundur, dan ke samping.
- Gerakkan mouse untuk memutar kamera dan melihat sekeliling.
- Pastikan gravitasi berfungsi dengan melangkah dari objek yang tinggi untuk melihat apakah pemain jatuh secara alami.
7. Meningkatkan Pengendali
Anda dapat meningkatkan pengontrol orang pertama lebih jauh dengan menambahkan:
- Fungsionalitas lari cepat dengan meningkatkan kecepatan gerak saat menahan tombol shift.
- Logika lompatan dengan mendeteksi saat pemain menekan spasi dan menerapkan kecepatan ke atas.
- Mekanika memanjat atau berjongkok untuk interaksi pemain yang lebih kompleks dengan lingkungan.
Kesimpulan
Dengan kontroler orang pertama dasar ini, Anda kini memiliki pengaturan pemain yang fungsional untuk menjelajahi lingkungan 3D. Dengan menyesuaikan dan memperluas skrip, Anda dapat menambahkan lebih banyak fitur dan interaksi agar sesuai dengan kebutuhan permainan Anda.