Sistem Peningkatan Pemain di Unity
Tutorial ini akan memandu Anda membuat sistem peningkatan dasar di Unity. Sistem peningkatan umum dalam permainan, yang memungkinkan pemain untuk meningkatkan karakter, peralatan, atau kemampuan mereka dari waktu ke waktu. Kami akan membuat contoh sistem peningkatan yang memungkinkan pemain untuk meningkatkan atribut seperti kesehatan, kecepatan, dan kekuatan serangan.
Prasyarat
- Unity Editor terpasang.
- Pemahaman dasar tentang C# dan sistem UI Unity.
- Suatu proyek yang disusun dengan GameObject pemain dasar dan Kanvas UI untuk menampilkan opsi peningkatan.
Langkah 1: Siapkan Atribut Pemain
Pertama, buat skrip C# untuk menentukan atribut pemain yang dapat ditingkatkan. Skrip ini akan memuat properti seperti kesehatan, kecepatan, dan kekuatan serangan.
using UnityEngine;
public class PlayerAttributes : MonoBehaviour
{
public int health = 100;
public float speed = 5f;
public int attackPower = 10;
public void IncreaseHealth(int amount)
{
health += amount;
Debug.Log("Health increased to " + health);
}
public void IncreaseSpeed(float amount)
{
speed += amount;
Debug.Log("Speed increased to " + speed);
}
public void IncreaseAttackPower(int amount)
{
attackPower += amount;
Debug.Log("Attack Power increased to " + attackPower);
}
}
Lampirkan skrip PlayerAttributes
ini ke GameObject pemain Anda untuk mengelola atributnya.
Langkah 2: Buat Manajer Peningkatan
Selanjutnya, buat skrip UpgradeManager
untuk mengelola opsi peningkatan dan menerapkannya pada atribut pemain. Skrip ini akan memungkinkan Anda untuk mengontrol berapa biaya setiap peningkatan dan seberapa besar peningkatan atribut pemain.
using UnityEngine;
public class UpgradeManager : MonoBehaviour
{
public PlayerAttributes player;
public int healthUpgradeCost = 50;
public int speedUpgradeCost = 30;
public int attackUpgradeCost = 40;
public void UpgradeHealth()
{
if (CurrencySystem.Instance.SpendCurrency(healthUpgradeCost))
{
player.IncreaseHealth(10); // Increase health by 10
}
}
public void UpgradeSpeed()
{
if (CurrencySystem.Instance.SpendCurrency(speedUpgradeCost))
{
player.IncreaseSpeed(0.5f); // Increase speed by 0.5
}
}
public void UpgradeAttackPower()
{
if (CurrencySystem.Instance.SpendCurrency(attackUpgradeCost))
{
player.IncreaseAttackPower(5); // Increase attack power by 5
}
}
}
Skrip UpgradeManager
ini memeriksa apakah pemain memiliki cukup mata uang untuk setiap peningkatan, lalu menerapkan peningkatan jika memungkinkan. Selanjutnya, kami akan menambahkan sistem mata uang sederhana untuk mengelola biaya peningkatan.
Langkah 3: Buat Sistem Mata Uang Sederhana
Kami akan membuat sistem mata uang dasar yang melacak mata uang pemain dan memungkinkan mereka untuk membelanjakannya untuk peningkatan. Ini dapat diperluas untuk ekonomi dalam permainan apa pun.
using UnityEngine;
public class CurrencySystem : MonoBehaviour
{
public static CurrencySystem Instance;
public int currency = 100;
private void Awake()
{
if (Instance == null)
Instance = this;
else
Destroy(gameObject);
}
public bool SpendCurrency(int amount)
{
if (currency >= amount)
{
currency -= amount;
Debug.Log("Currency spent: " + amount + ". Remaining: " + currency);
return true;
}
else
{
Debug.Log("Not enough currency.");
return false;
}
}
public void AddCurrency(int amount)
{
currency += amount;
Debug.Log("Currency added: " + amount + ". Total: " + currency);
}
}
Skrip CurrencySystem
ini dapat menambah dan membelanjakan mata uang, dan diimplementasikan sebagai singleton sehingga Anda dapat mengaksesnya dengan mudah dari skrip lain. Lampirkan ke GameObject dalam adegan.
Langkah 4: Siapkan UI untuk Peningkatan
Agar pemain dapat berinteraksi dengan sistem peningkatan, buat UI di Unity dengan tombol untuk setiap opsi peningkatan. Berikut caranya:
- Buat Kanvas di adegan Anda (GameObject > UI > Canvas).
- Tambahkan Tombol ke Kanvas dan beri label "Upgrade Health," "Upgrade Speed," dan "Upgrade Attack".
- Lampirkan skrip
UpgradeManager
ke GameObject di tempat kejadian, dan tetapkan GameObject pemain ke kolomplayer
di Inspektur. - Tautkan setiap acara Saat Diklik Tombol untuk memanggil fungsi pemutakhiran yang sesuai (misalnya,
UpgradeManager.UpgradeHealth()
).
Langkah 5: Menguji Sistem Peningkatan
Jalankan game, dan coba tekan tombol upgrade. Setiap upgrade akan berlaku untuk atribut pemain, dan CurrencySystem
akan mengurangi mata uang yang sesuai. Gunakan log Debug untuk mengonfirmasi bahwa atribut dan mata uang diperbarui seperti yang diharapkan.
Kesimpulan
Kami menciptakan sistem peningkatan dasar di Unity, termasuk atribut pemain, sistem mata uang, dan pengelola peningkatan. Anda dapat menyesuaikan sistem ini untuk menambahkan lebih banyak peningkatan, meningkatkan biaya peningkatan secara dinamis, atau bahkan menambahkan jenis peningkatan baru berdasarkan persyaratan permainan Anda. Fondasi ini dapat diperluas untuk menciptakan mekanisme peningkatan yang lebih kompleks dan menarik dalam permainan Anda.