Unity

В Unity есть несколько объектов в виде кнопок с названием: Award1, Award2, Award3, Award5, Award10, Award15, Award20, Award50, Award100 и AwardKing. Все они изначально должны быть заблокированы от нажатия. Есть текстовый объект beeCoinsNum в который записываются очки. Выполнить условие, если цифра текста объекта beeCoinsNum больше или равна 10, то кнопка с названием Award1 должна быть разблокирована от нажатия. Если цифра текста beeCoinsNum больше или равна 20, то кнопка с названием Award2 должна быть разблокирована от нажатия. И так далее. Последняя кнопка AwardKing будет разблокирована при значении цифры beeCoinsNum больше или равно 1500.

Для реализации желаемой логики в Unity, вы можете использовать следующий пример кода на C#. Этот скрипт будет проверять значение очков в beeCoinsNum и разблокировать соответствующие кнопки в зависимости от их значений.

  1. Убедитесь, что у вас есть ссылки на кнопки и текстовый объект в вашем скрипте. Вы можете использовать Button для кнопок и Text (или TMP_Text для TextMeshPro) для текстового объекта.
  2. При старте игры все кнопки должны быть заблокированы. С помощью метода UnityEngine.UI.Button.interactable это можно сделать.

Вот примерный код, который вы можете использовать:

using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class AwardManager : MonoBehaviour
{
    public Button award1;
    public Button award2;
    public Button award3;
    public Button award5;
    public Button award10;
    public Button award15;
    public Button award20;
    public Button award50;
    public Button award100;
    public Button awardKing;
    public TMP_Text beeCoinsNumText;

    private void Start()
    {
        // Изначально блокируем все кнопки
        LockAllButtons();

        // Проверяем очки и разблокируем кнопки
        UpdateButtons();
    }

    private void LockAllButtons()
    {
        award1.interactable = false;
        award2.interactable = false;
        award3.interactable = false;
        award5.interactable = false;
        award10.interactable = false;
        award15.interactable = false;
        award20.interactable = false;
        award50.interactable = false;
        award100.interactable = false;
        awardKing.interactable = false;
    }

    private void UpdateButtons()
    {
        int beeCoinsNum = int.Parse(beeCoinsNumText.text);

        if (beeCoinsNum >= 10) award1.interactable = true;
        if (beeCoinsNum >= 20) award2.interactable = true;
        if (beeCoinsNum >= 30) award3.interactable = true; 
        if (beeCoinsNum >= 50) award5.interactable = true; 
        if (beeCoinsNum >= 100) award10.interactable = true;
        if (beeCoinsNum >= 150) award15.interactable = true; 
        if (beeCoinsNum >= 200) award20.interactable = true; 
        if (beeCoinsNum >= 500) award50.interactable = true; 
        if (beeCoinsNum >= 1000) award100.interactable = true; 
        if (beeCoinsNum >= 1500) awardKing.interactable = true; 
    }

    // Вызывайте метод UpdateButtons при изменении значения beeCoinsNum
    public void SetBeeCoinsNum(int newAmount)
    {
        beeCoinsNumText.text = newAmount.ToString();
        UpdateButtons();
    }
}

Пояснения:

  • Кнопки и текст: В скрипте есть ссылки на кнопки и текстовый объект. Убедитесь, что эти объекты правильно связаны в инспекторе Unity.
  • LockAllButtons(): Этот метод по умолчанию блокирует все кнопки в начале.
  • UpdateButtons(): Этот метод проверяет значение очков и разблокирует соответствующие кнопки.
  • SetBeeCoinsNum(int newAmount): Этот метод можно вызывать при изменении количества очков, чтобы обновить значение и состояние кнопок.

Теперь, когда значение beeCoinsNum меняется, вызывайте метод SetBeeCoinsNum, и кнопки будут разблокироваться в зависимости от условий.