У меня уже есть выбор персонажа, но я не могу получить доступ к функции разблокировки магазина моей игры. Моя идея о том, как игрок может разблокировать персонажей, заключается в том, что есть невидимый игровой объект, который исчезнет, как только игрок нажмет на него с достаточными средствами. Это позволит ему использовать персонажа, потому что он только что разблокировал его. Моя проблема в том, что обе мои текущие блокировки игровых объектов не могут взаимодействовать до тех пор, пока игрок не выполнит оба требования оператора if.
Кроме того, золотой игровой объект представляет собой золотой фон позади игрока, который должен находиться на расстоянии go после покупки и владения персонажем.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Locked : MonoBehaviour
{
public static int totalScore;
public Button locked;
public Text totalscore;
public GameObject gold;
int wizNum;
int snailNum;
private void Start()
{
totalScore = PlayerPrefs.GetInt("TotalScore", 0);
wizNum = PlayerPrefs.GetInt("WizNum", 0);
snailNum = PlayerPrefs.GetInt("SnailNum", 0);
if (wizNum == 1)
{
gold.gameObject.SetActive(false);
locked.gameObject.SetActive(false);
}
if (snailNum == 1)
{
gold.gameObject.SetActive(false);
locked.gameObject.SetActive(false);
}
}
private void Update()
{
if (totalScore >= 500 && wizNum == 0)
locked.interactable = true;
else
locked.interactable = false;
if (totalScore >= 1500 && snailNum == 0)
locked.interactable = true;
else
locked.interactable = false;
}
public void BuyWizard()
{
totalScore -= 500;
PlayerPrefs.SetInt("TotalScore", totalScore);
totalscore.text = PlayerPrefs.GetInt("TotalScore", 0).ToString();
PlayerPrefs.SetInt("WizNum", 1);
locked.gameObject.SetActive(false);
gold.gameObject.SetActive(false);
}
public void BuySnail()
{
totalScore -= 1500;
PlayerPrefs.SetInt("TotalScore", totalScore);
totalscore.text = PlayerPrefs.GetInt("TotalScore", 0).ToString();
PlayerPrefs.SetInt("SnailNum", 1);
locked.gameObject.SetActive(false);
gold.gameObject.SetActive(false);
}
}