我在主菜单中做了一个硬币系统(在Unity C#中),所以我可以为他们购买物品。我想在游戏场景中拾取硬币并添加到这个分数中,我可以在我的主菜单和游戏场景中看到。
在GameManager.PlayerController脚本中
public Text coinText;
PlayerController脚本中:
gameManagerScript.coinText.text = "Currency : " + MainGameManager.Instance.currency.ToString();
gameManagerScript = GameObject.Find("GameManager").GetComponent<GameManager>();
当玩家捡到硬币:`。
private void OnTriggerEnter(Collider other)
{
Destroy(other.gameObject);
MainGameManager.Instance.currency += 1;
gameManagerScript.coinText.text = "Currency : " + MainGameManager.Instance.currency.ToString();
}
在层次结构中,我做了一个UI -> Text,并把它放在GameManager中。
我在游戏场景中看到的是: 货币:但我没有看到我有多少,也没有添加到货币。
在PlayerController脚本中,你在尝试设置文本后定义了gameManagerScript.你的UI可能不是正确的大小(不适合你所有的文本)如果这些都不是答案,请尝试用以下方法调试 print(string)
或 Debug.log(string)
而不是用户界面
你可以使用静态字段.在你的GameManager中。
public static int coins;
In Player:
GameManager.coins += val
你也可以使用MainMenu脚本中的GameManager.coins访问该值。注意:如果你想让这些数据在不同的运行中持久化,你可以使用PlayerPrefs类。https:/docs.unity3d.comScriptReferencePlayerPrefs.html。