Система оновлення гравців в Unity

Цей посібник допоможе вам створити базову систему оновлення в Unity. Системи оновлень поширені в іграх, що дозволяє гравцям з часом покращувати своїх персонажів, обладнання або здібності. Ми створимо приклад системи оновлення, яка дозволить гравцеві підвищити такі атрибути, як здоров’я, швидкість і сила атаки.

передумови

  • Unity Встановлений редактор.
  • Базове розуміння C# та системи інтерфейсу Unity.
  • Проект, налаштований із базовим програвачем GameObject і UI Canvas для відображення параметрів оновлення.

Крок 1: Налаштуйте атрибути гравця

Спочатку створіть сценарій C#, щоб визначити атрибути гравця, які можна оновити. Цей сценарій зберігатиме такі властивості, як здоров’я, швидкість і сила атаки.

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);
    }
}

Приєднайте цей сценарій PlayerAttributes до GameObject гравця, щоб керувати його атрибутами.

Крок 2. Створіть менеджер оновлення

Потім створіть сценарій UpgradeManager для керування параметрами оновлення та застосування їх до атрибутів гравця. Цей скрипт дозволить вам контролювати, скільки коштує кожне оновлення та наскільки воно збільшує атрибути гравця.

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
        }
    }
}

Цей сценарій UpgradeManager перевіряє, чи достатньо у гравця валюти для кожного оновлення, а потім застосовує оновлення, якщо це доступно. Далі ми додамо просту валютну систему для керування витратами на оновлення.

Крок 3: Створіть просту валютну систему

Ми створимо базову валютну систему, яка відстежуватиме валюту гравця та дозволить йому витрачати її на оновлення. Це можна розширити для будь-якої внутрішньоігрової економіки.

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);
    }
}

Цей сценарій CurrencySystem може додавати та витрачати валюту, і він реалізований як одиночний файл, тому ви можете легко отримати до нього доступ з інших сценаріїв. Приєднайте його до GameObject на сцені.

Крок 4. Налаштуйте інтерфейс користувача для оновлень

Щоб дозволити гравцям взаємодіяти з системою оновлення, створіть інтерфейс користувача в Unity з кнопками для кожного варіанта оновлення. Ось як:

  1. Створіть Canvas у своїй сцені (GameObject > UI > Canvas).
  2. Додайте кнопки на Canvas, позначивши їх як "Upgrade Health," "Upgrade Speed," і "Upgrade Attack".
  3. Приєднайте сценарій UpgradeManager до об’єкта GameObject у сцені та призначте об’єкт GameObject гравця його полю player в інспекторі.
  4. Пов’яжіть подію On Click кожної кнопки, щоб викликати відповідну функцію оновлення (наприклад, UpgradeManager.UpgradeHealth()).

Крок 5: Тестування системи оновлення

Запустіть гру та спробуйте натиснути кнопки оновлення. Кожне оновлення має застосовуватися до атрибутів гравця, а CurrencySystem має відповідно зменшувати валюту. Використовуйте журнал налагодження, щоб підтвердити, що атрибути та валюта оновлюються належним чином.

Висновок

Ми створили базову систему оновлення в Unity, включаючи атрибути гравців, валютну систему та менеджер оновлення. Ви можете налаштувати цю систему, щоб додавати більше оновлень, динамічно збільшувати вартість оновлення або навіть додавати нові типи оновлень відповідно до вимог вашої гри. Цю основу можна розширити, щоб створити більш складну та привабливу механіку оновлення у ваших іграх.