Я сделал свою первую игру Unity3D. Это гоночная игра с бесконечной дорогой. Я тоже сделал несколько пикап-монет. проблема в том, что когда я собираю монеты, а затем захожу в меню магазина, чтобы посмотреть, добавлено ли оно к общему количеству монет или нет, оно не добавляется до тех пор, пока я не разыграю другой раунд, а затем будут добавлены монеты, которые я собрал за раунд. Это как задержка или что-то в этом роде.
Это потому, что я не знаю, как использовать значение в разных сценах? или это что-то еще. кто-то сказал мне использовать PlayerPrefs, я использовал его в своих скриптах, но для этого я имею в виду количество монет, я не знаю, как его использовать.
Скрипт ниже - это мой скрипт игрока, в котором яподсчитайте пикап монеты и некоторые другие вещи, связанные с игроком. Я привожу только Ontrigger и подсчитываю связанные коды.
void Start () {
CameraAnimation = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Animator>();
_GameManager = GameObject.FindGameObjectWithTag("GameManager").GetComponent<GameManager>();
_AudioSource = GetComponent<AudioSource>();
count = 0;
SetCountText ();
}
void OnTriggerEnter(Collider other){
if(other.gameObject.tag == "Coins") {
count = count + 1;
SetCountText ();
}
}
public void SetCountText(){
CountText.text = count.ToString ();
}
Код ниже - это мой CalcuCoin, в котором я добавляю количество собранных монет к предыдущему значению и показываю сумму в текстовом поле сцены магазина:
public class CalculateCoin : MonoBehaviour{
// Use this for initialization
public static int Coin = 10000;
public Text ShowCoin;
void Start () {
ShowCoin.text = PlayerPrefs.GetInt("Coin").ToString();
Coin =PlayerPrefs.GetInt("Coin")+Player.count;
PlayerPrefs.SetInt ("Coin", Coin);
}
}