Membuat Game Berburu di Unity
Dalam tutorial ini, kita akan membahas proses pembuatan game berburu dasar di Unity. Game ini akan mencakup elemen-elemen seperti pergerakan pemain, AI hewan, mekanika menembak, dan sistem penilaian. Kita akan membahas:
- Menyiapkan proyek dan lingkungan
- Membuat kontrol pemain
- Menerapkan AI pada Hewan
- Menambahkan mekanisme penembakan
- Menyiapkan sistem penilaian
Menyiapkan Proyek
Mari kita mulai dengan menyiapkan proyek Unity baru dan membuat lingkungan.
Membuat Proyek
- Buka Unity dan buat proyek 3D baru.
- Beri nama proyek Anda
HuntingGamedan klikBuat. - Di jendela Proyek, buat folder bernama
Scripts,Prefabs, danMaterialsuntuk mengatur aset Anda.
Menyiapkan Lingkungan
- Dalam Hirarki, klik kanan dan pilih
Objek 3D > Medanuntuk membuat medan. - Sesuaikan medan dengan menggunakan
Alat Medanuntuk melukis tekstur, menambahkan pohon, dan menempatkan rumput atau detail lainnya. - Tambahkan beberapa objek 3D seperti batu dan pohon untuk membuat lingkungan lebih realistis.
Membuat Kontrol Pemain
Selanjutnya, kita akan membuat karakter pemain dan menerapkan kontrol gerakan berbasis fisika.
Karakter Pemain
- Dalam Hirarki, klik kanan dan pilih
Objek 3D > Kapsuluntuk membuat karakter pemain. - Ubah nama kapsul menjadi
Pemaindan posisikan di atas medan. - Tambahkan komponen
Rigidbodyke objekPlayeruntuk pergerakan berbasis fisika. - Tambahkan
Camerasebagai anak objekPlayeruntuk berfungsi sebagai sudut pandang pemain.
Skrip Pergerakan Pemain
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f;
public float rotationSpeed = 100f;
private Rigidbody rb;
void Start()
{
rb = GetComponent();
rb.freezeRotation = true;
}
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = transform.forward * moveVertical * moveSpeed * Time.deltaTime;
rb.MovePosition(rb.position + movement);
float rotation = Input.GetAxis("Mouse X") * rotationSpeed * Time.deltaTime;
Quaternion turnRotation = Quaternion.Euler(0f, rotation, 0f);
rb.MoveRotation(rb.rotation * turnRotation);
}
}- Buat skrip C# baru bernama
PlayerMovement.csdi folderScripts. - Lampirkan skrip
PlayerMovementke objekPlayer.
Menerapkan AI Hewan
Kami akan membuat AI hewan sederhana untuk menjelajahi lingkungan dan bereaksi terhadap pemain.
Hewan Prefab
- Impor atau buat model 3D untuk hewan (misalnya, rusa).
- Tarik model ke dalam pemandangan dan posisikan di medan.
- Klik kanan model di Hierarchy dan pilih
Create Emptyuntuk membuat objek induk. Beri namaDeer. - Tarik model 3D ke objek
Deerdan atur ulang transformasinya. - Simpan objek
Deersebagai prefab dengan menyeretnya ke folderPrefabs.
Skrip AI Hewan
using UnityEngine;
using UnityEngine.AI;
public class AnimalAI : MonoBehaviour
{
public Transform[] waypoints;
private NavMeshAgent agent;
private int currentWaypoint = 0;
void Start()
{
agent = GetComponent();
agent.SetDestination(waypoints[currentWaypoint].position);
}
void Update()
{
if (agent.remainingDistance < agent.stoppingDistance)
{
currentWaypoint = (currentWaypoint + 1) % waypoints.Length;
agent.SetDestination(waypoints[currentWaypoint].position);
}
}
}- Buat skrip C# baru bernama
AnimalAI.csdi folderScripts. - Lampirkan skrip
AnimalAIke prefabDeer. - Tambahkan komponen
NavMeshAgentke prefabDeer. - Siapkan titik arah dalam adegan dengan membuat GameObject kosong dan memposisikannya sesuai keinginan. Tetapkan titik arah ini ke array
waypointsdalam skripAnimalAI.
Menambahkan Mekanika Menembak
Kami akan menerapkan kemampuan bagi pemain untuk menembak binatang.
Naskah Syuting
using UnityEngine;
public class PlayerShooting : MonoBehaviour
{
public Camera playerCamera;
public float range = 100f;
public GameObject impactEffect;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Shoot()
{
RaycastHit hit;
if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit, range))
{
AnimalAI animal = hit.transform.GetComponent();
if (animal != null)
{
Destroy(hit.transform.gameObject);
}
GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactGO, 2f);
}
}
}- Buat skrip C# baru bernama
PlayerShooting.csdi folderScripts. - Lampirkan skrip
PlayerShootingke objekPlayer. - Buat efek dampak (misalnya, sistem partikel) dan tetapkan ke bidang
impactEffectdalam skrip.
Menyiapkan Sistem Penilaian
Kami akan menambahkan sistem penilaian sederhana untuk melacak perburuan pemain yang berhasil.
Skrip Pengelola Skor
using UnityEngine;
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
public static int score = 0;
public Text scoreText;
void Update()
{
scoreText.text = "Score: " + score.ToString();
}
public static void AddScore(int points)
{
score += points;
}
}- Buat skrip C# baru bernama
ScoreManager.csdi folderScripts. - Lampirkan skrip
ScoreManagerke GameObject kosong baru bernamaGameManager. - Buat elemen Teks UI untuk menampilkan skor dan tetapkan ke bidang
scoreTextdalam skripScoreManager.
Memperbarui Naskah Syuting untuk Melacak Skor
void Shoot()
{
RaycastHit hit;
if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit, range))
{
AnimalAI animal = hit.transform.GetComponent();
if (animal != null)
{
Destroy(hit.transform.gameObject);
ScoreManager.AddScore(10);
}
GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactGO, 2f);
}
}Kesimpulan
Kami telah membuat game berburu dasar di Unity. Kami menyiapkan proyek dan lingkungan, membuat kontrol pemain dengan gerakan berbasis fisika, menerapkan AI hewan, menambahkan mekanisme menembak, dan menyiapkan sistem penilaian. Pengetahuan dasar ini dapat diperluas untuk mencakup perilaku yang lebih kompleks, hewan tambahan, dan mekanisme permainan yang disempurnakan untuk meningkatkan permainan berburu Anda.