我已经在主菜单中制作了一个硬币系统(在Unity C#中),因此我可以为他们购买物品。我想在游戏场景中拾取硬币并添加到该分数中,这在我的主菜单和游戏场景中也可以看到。
在GameManager中:
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->文本,并放置在GameManager中。
我在游戏场景中看到的是:货币:但是我看不到有多少,也没有添加到货币中。
答案 0 :(得分:1)
在PlayerController脚本中,尝试设置文本后定义gameManagerScript。
您的UI尺寸可能不合适(不适合您的所有文字)
如果这些都不是答案,请尝试在控制台而不是ui中使用print(string)
或Debug.log(string)
进行调试
答案 1 :(得分:1)
您可以使用静态字段。 在您的GameManager中:
public static int coins;
在播放器中:
GameManager.coins += val
您还可以使用MainMenu脚本中的GameManager.coins访问该值。 注意:如果要使此数据在不同的运行中持久保存,则可以使用PlayerPrefs类: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html