[英]Unity - C# : how can I use a value in different scenes?
我制作了我的第一个 Unity3D 游戏。 这是一款具有无限道路的赛车游戏。 我也做了一些捡硬币。 问题是当我拿起硬币然后我 go 到商店菜单查看它是否添加到总硬币中,直到我玩另一轮然后我之前收集的硬币才会被添加。 这就像一个延迟或什么的。
是不是因为我不知道如何在不同的场景中使用一个值? 或者它,是别的东西。 有人告诉我使用 PlayerPrefs,我在脚本中使用了它,但为此,我的意思是硬币的数量,我不知道如何使用它。
下面的脚本是我的玩家脚本,我在其中计算拾取硬币和其他一些与玩家相关的东西。 我只带了Ontrigger和count相关的代码。
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 ();
}
下面的代码是我的calculateCoin,其中我将收集到的硬币计数添加到前一个值中,并在商店场景文本框中显示总数:
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);
}
}
第一个选项,您可以为包含数据作为容器的特定游戏对象添加“DontDestroyOnLoad”。 所以它可以用作场景之间的共享数据。
或制作'Singleton' class 并将其用作数据容器,它可能是选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.