@GARLIK2200

Assets\Scenes\SkinShop.cs(33,13): error CS0176: Member 'CurrencyManager.currencyValue' cannot be accessed with an instance reference; qualify it with?

делаю игру для телефонов а тут нисчего вдруг появилась ошибка
1 скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SkinShop : MonoBehaviour
{
    public GameObject BuyButton;
    CurrencyManager currencyManager; // Добавьте ссылку на CurrencyManager
    int BuySkin;

    // Start is called before the first frame update
    void Start()
    {
        BuySkin = PlayerPrefs.GetInt("BuySkin", 1);
    }

    // Update is called once per frame
    void Update()
    {
        if (BuySkin == 1)
        {
            BuyButton.SetActive(true);
        }
        else
        {
            BuyButton.SetActive(false);
        }
    }

    public void BuySkins()
    {
        if (currencyManager.currencyValue >= 300) // Используйте currencyManager для доступа к currencyValue
        {
            currencyManager.currencyValue -= 300; // Используйте currencyManager для изменения currencyValue
            BuySkin = 2;
            PlayerPrefs.SetInt("BuySkin", BuySkin);
        }
    }
}

2 скрипт:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;

public class CurrencyManager : MonoBehaviour
{
    public  Text currencyText; // Ссылка на текстовый элемент интерфейса, отображающий валюту
    public static int currencyValue = 0; // Переменная для хранения количества валюты

    public void Start()
    {
        // Проверяем, есть ли сохраненное значение валюты, и загружаем его
        if (PlayerPrefs.HasKey("Currency"))
        {
            currencyValue = PlayerPrefs.GetInt("Currency");
        }

        // Обновляем отображение валюты на экране
        UpdateCurrencyText();
    }

    public void AddCurrency(int amount)
    {
        // Увеличиваем количество валюты на заданную сумму
        currencyValue += amount;

        // Обновляем отображение валюты на экране
        UpdateCurrencyText();

        // Сохраняем текущее значение валюты
        PlayerPrefs.SetInt("Currency", currencyValue);
    }

    public void UpdateCurrencyText()
    {
        // Обновляем текстовый элемент интерфейса с текущим значением валюты
        currencyText.text = "Тяг: " + currencyValue.ToString();
    }
}


проблема в том,что нисчего юнити решил не снимать 300 очков за фон,дальше я 30 минут колотил скрипты и теперь бьет ошибку.Как только не пытался убрать ошибку-не получалось.Решил поискать в интернете ответ в интернете,поспрашивал у чата гпт и все бестолку.
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы