Unity C#投币系统

时间:2020-07-21 20:31:06

标签: c# unity3d

我正在使用Unity在游戏中制作一个简单的硬币系统,但遇到了问题。

这是我拥有的所有代码:

public class CoinSystem : MonoBehaviour
{
    public Text coinText;
    public int coinAmount;

    // Start is called before the first frame update
    void Start()
    {
        coinText = GetComponent<Text>();
    }

    // Update is called once per frame
    void Update()
    {
        coinText.text = coinAmount.ToString();
    }

运行游戏时,出现此错误:

NullReferenceException:对象引用未设置为对象的实例 CoinSystem.Update()(位于Assets / Scripts / CoinSystem.cs:21)

我看过多个论坛,我们的代码非常相似,所以我不知道可能出什么问题。任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:1)

您附加了代码的GameObject没有Text组件。

转到包含此代码(GameObject)的CoinSystem的检查员,然后执行

Add Component > Text

答案 1 :(得分:0)

您必须将脚本添加到Text组件gameObject中。如果要将脚本添加到其他gameObject,然后将文本gameObject引用到添加的脚本gameObject,则Start()的外观将与以下不同:

coinText.GetComponent<Text>();