统一的硬币系统

问题描述 投票:0回答:1

我在主菜单中做了一个硬币系统(在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中。

我在游戏场景中看到的是: 货币:但我没有看到我有多少,也没有添加到货币。

c# unity3d canvas currency
1个回答
1
投票

在PlayerController脚本中,你在尝试设置文本后定义了gameManagerScript.你的UI可能不是正确的大小(不适合你所有的文本)如果这些都不是答案,请尝试用以下方法调试 print(string)Debug.log(string) 而不是用户界面


1
投票

你可以使用静态字段.在你的GameManager中。

public static int coins;

In Player:

GameManager.coins += val

你也可以使用MainMenu脚本中的GameManager.coins访问该值。注意:如果你想让这些数据在不同的运行中持久化,你可以使用PlayerPrefs类。https:/docs.unity3d.comScriptReferencePlayerPrefs.html。

© www.soinside.com 2019 - 2024. All rights reserved.