System ulepszeń gracza w Unity
Ten samouczek przeprowadzi Cię przez proces tworzenia podstawowego systemu ulepszeń w Unity. Systemy ulepszeń są powszechne w grach, pozwalając graczom ulepszać swoje postacie, wyposażenie lub umiejętności z czasem. Stworzymy przykładowy system ulepszeń, który pozwala graczowi zwiększać atrybuty, takie jak zdrowie, szybkość i siła ataku.
Wymagania wstępne
- Unity Edytor zainstalowany.
- Podstawowa znajomość języka C# i systemu interfejsu użytkownika Unity.
- Projekt utworzony z podstawowego obiektu GameObject gracza i interfejsu użytkownika Canvas do wyświetlania opcji aktualizacji.
Krok 1: Skonfiguruj atrybuty gracza
Najpierw utwórz skrypt C#, aby zdefiniować atrybuty gracza, które można ulepszyć. Ten skrypt będzie zawierał właściwości takie jak zdrowie, szybkość i moc ataku.
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);
}
}
Dołącz ten skrypt PlayerAttributes
do obiektu GameObject gracza, aby zarządzać jego atrybutami.
Krok 2: Utwórz Menedżera uaktualnień
Następnie utwórz skrypt UpgradeManager
, aby zarządzać opcjami ulepszeń i stosować je do atrybutów gracza. Ten skrypt pozwoli Ci kontrolować, ile kosztuje każde ulepszenie i o ile zwiększa atrybuty gracza.
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
}
}
}
Ten skrypt UpgradeManager
sprawdza, czy gracz ma wystarczająco dużo waluty na każdą aktualizację, a następnie stosuje aktualizację, jeśli jest dostępna. Następnie dodamy prosty system walutowy do zarządzania kosztami aktualizacji.
Krok 3: Utwórz prosty system walutowy
Stworzymy podstawowy system walutowy, który śledzi walutę gracza i pozwala mu wydawać ją na ulepszenia. Można go rozszerzyć na dowolną gospodarkę w grze.
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);
}
}
Ten skrypt CurrencySystem
może dodawać i wydawać walutę, a jest on zaimplementowany jako singleton, więc możesz łatwo uzyskać do niego dostęp z innych skryptów. Dołącz go do GameObject w scenie.
Krok 4: Skonfiguruj interfejs użytkownika dla uaktualnień
Aby umożliwić graczom interakcję z systemem ulepszeń, utwórz interfejs użytkownika w Unity z przyciskami dla każdej opcji ulepszeń. Oto jak to zrobić:
- Utwórz obiekt Canvas w swojej scenie (GameObject > UI > Canvas).
- Dodaj przyciski do obszaru roboczego, oznaczając je jako "Upgrade Health,", "Upgrade Speed," i "Upgrade Attack".
- Dołącz skrypt
UpgradeManager
do obiektu GameObject w scenie i przypisz obiekt GameObject gracza do jego polaplayer
w inspektorze. - Połącz zdarzenie On Click każdego przycisku, aby wywołać odpowiednią funkcję aktualizacji (np.
UpgradeManager.UpgradeHealth()
).
Krok 5: Testowanie systemu aktualizacji
Uruchom grę i spróbuj nacisnąć przyciski ulepszeń. Każde ulepszenie powinno dotyczyć atrybutów gracza, a CurrencySystem
powinien odpowiednio zmniejszyć walutę. Użyj dziennika debugowania, aby potwierdzić, że atrybuty i waluta aktualizują się zgodnie z oczekiwaniami.
Wniosek
Stworzyliśmy podstawowy system ulepszeń w Unity, obejmujący atrybuty gracza, system walutowy i menedżera ulepszeń. Możesz dostosować ten system, aby dodać więcej ulepszeń, dynamicznie zwiększyć koszty ulepszeń, a nawet dodać nowe typy ulepszeń w oparciu o wymagania gry. Tę podstawę można rozszerzyć, aby tworzyć bardziej złożone i angażujące mechanizmy ulepszeń w grach.