统一C#硬币系统

统一C#硬币系统,c#,unity3d,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&l

我在游戏中使用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();
    }
公共类系统:单一行为
{
公共文本;
公共货币数量;
//在第一帧更新之前调用Start
void Start()
{
coinText=GetComponent();
}
//每帧调用一次更新
无效更新()
{
coinText.text=cointamount.ToString();
}
当我运行游戏时,会出现以下错误:

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


我看过多个论坛,我们的代码非常相似,所以我不知道会出什么问题。如果您能提供任何帮助,我将不胜感激!您附加代码的
游戏对象
没有
文本
组件

转到包含此代码的
游戏对象的检查器(
CoinSystem
)并执行以下操作


您必须将脚本添加到您的
Text
组件游戏对象中。如果您将脚本添加到不同的游戏对象,然后将Text gameObject引用到添加的脚本游戏对象中,则您的Start()看起来会有所不同,如下所示:

coinText.GetComponent<Text>();
coinText.GetComponent();
coinText.GetComponent<Text>();