Unity中的硬币系统

时间:2020-04-27 10:42:30

标签: c# unity3d canvas currency

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

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

2 个答案:

答案 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