Sistem Peningkatan Basis di Unity
Dalam banyak permainan, pemain dapat meningkatkan basis atau bangunan untuk membuka fitur tambahan, meningkatkan pertahanan, atau meningkatkan tingkat produksi. Tutorial ini akan memandu Anda dalam menyiapkan sistem peningkatan basis di Unity, yang memungkinkan bangunan ditingkatkan ke beberapa level dengan perubahan visual dan fungsional di setiap level.
1. Menyiapkan Struktur Dasar
Pertama, buat skrip Base
yang menentukan properti markas Anda, seperti level, kesehatan, dan tingkat produksi. Setiap peningkatan level akan mengubah atribut ini.
using UnityEngine;
public class Base : MonoBehaviour
{
public int level = 1;
public int health = 100;
public int productionRate = 10;
public void UpgradeBase()
{
level++;
health += 50; // Increase health by 50 with each level
productionRate += 5; // Increase production rate by 5 with each level
Debug.Log("Base upgraded to level " + level);
}
}
Skrip Base
ini menyertakan metode UpgradeBase()
sederhana yang meningkatkan level dan meng-upgrade atribut basis. Lampirkan skrip ini ke GameObject basis dalam adegan.
2. Membuat Manajer Peningkatan
Berikutnya, buat skrip UpgradeManager
yang mengelola peningkatan dasar, termasuk memeriksa apakah pemain memiliki cukup mata uang untuk melakukan peningkatan.
using UnityEngine;
public class UpgradeManager : MonoBehaviour
{
public Base playerBase;
public int upgradeCost = 100;
public void AttemptUpgrade()
{
if (CurrencySystem.Instance.SpendCurrency(upgradeCost))
{
playerBase.UpgradeBase();
upgradeCost += 50; // Increase the cost for each upgrade
}
else
{
Debug.Log("Not enough currency to upgrade.");
}
}
}
Lampirkan skrip UpgradeManager
ini ke GameObject, tetapkan GameObject dasar ke kolom playerBase
, dan tetapkan upgradeCost
awal. Setiap peningkatan akan meningkatkan biaya, sehingga peningkatan di masa mendatang akan lebih sulit.
3. Menyiapkan Sistem Mata Uang
Untuk mengelola biaya peningkatan, tambahkan CurrencySystem
sebagai cara mudah untuk melacak dan membelanjakan mata uang pemain. Berikut contohnya:
using UnityEngine;
public class CurrencySystem : MonoBehaviour
{
public static CurrencySystem Instance;
public int currency = 500;
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);
}
}
Lampirkan CurrencySystem
ini ke GameObject dalam adegan. Pola singleton memungkinkan akses mudah dari skrip lain, seperti UpgradeManager
.
4. Memperbarui Visual dan Efek per Level
Untuk membuat setiap peningkatan basis terlihat berbeda secara visual, tambahkan variasi untuk setiap level, seperti model atau tekstur yang berbeda. Misalnya:
- Buat beberapa model 3D untuk setiap tingkat dasar, atau siapkan tekstur/material yang berbeda.
- Tambahkan kode di kelas
Base
untuk menukar model atau material setiap kali level dinaikkan.
Berikut cuplikan kode untuk memperbarui visual dalam skrip Base
:
public GameObject[] levelModels; // Assign each level's model in Inspector
public void UpgradeBase()
{
level++;
health += 50;
productionRate += 5;
UpdateBaseModel();
}
void UpdateBaseModel()
{
for (int i = 0; i < levelModels.Length; i++)
{
levelModels[i].SetActive(i == level - 1);
}
}
Kode ini akan mengaktifkan model yang sesuai dengan level pangkalan saat ini dan menonaktifkan yang lain.
5. Membuat UI untuk Upgrade
Selanjutnya, buat elemen UI untuk memungkinkan pemain memulai peningkatan dan melacak level pangkalan saat ini. Untuk melakukannya:
- Buat Kanvas dengan tombol berlabel "Upgrade Base".
- Lampirkan peristiwa
OnClick
ke tombol ini, yang menautkannya ke metodeAttemptUpgrade
dariUpgradeManager
. - Menampilkan level pangkalan, kesehatan, dan tingkat produksi pada UI untuk memberikan umpan balik kepada pemain mengenai kemajuan peningkatan.
6. Menguji Sistem Peningkatan
Jalankan game dan klik tombol "Upgrade Base". Dengan setiap peningkatan, atribut basis akan meningkat, dan visual akan berubah sesuai dengan itu. Gunakan log Debug untuk memverifikasi perubahan mata uang dan penyesuaian level.
Memperluas Sistem
Sistem peningkatan dasar ini dapat diperluas dengan menambahkan:
- Level baru dengan atribut berbeda dan peningkatan visual.
- Persyaratan sumber daya di luar mata uang, seperti bahan atau waktu.
- Efek khusus untuk peningkatan, seperti efek partikel atau umpan balik suara.
Kesimpulan
Kami menciptakan sistem peningkatan dasar di Unity, yang menampilkan peningkatan atribut dinamis, pemeriksaan mata uang sederhana, dan UI untuk peningkatan. Sistem ini menyediakan fondasi untuk menambahkan mekanisme yang lebih kompleks dalam permainan Anda, seperti peningkatan multi-tahap dan visual yang berbeda untuk setiap level.