我是一个相对较新的C#编码器。我以前从未遇到过这个问题,但是由于某种原因,当我尝试通过代码更新分数时。它破坏了我的游戏。这是我的代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
public static ScoreManager instance;
[SerializeField] Text score;
int points;
void Start()
{
if(instance == null)
{
instance = this;
}
score = GetComponent<Text>();
points = 0;
}
// Update is called once per frame
void Update()
{
score.text = points.ToString();
}
public void AddToScore()
{
points++;
}
}
如果我注释掉了score.text = points.ToString();它将正常工作。但不会更新。
有人可以帮助我吗:(。我正在使用unity,并且我已将文本文件附加到scoremanager对象。我得到的错误是:
NullReferenceException:对象引用未设置为对象的实例 ScoreManager.Update()(位于Assets / Scripts / ScoreManager.cs:27)
答案 0 :(得分:2)
呼叫时,您的score
字段为null
score.text = points.ToString();
使用调试器检查其初始化行。
这里
score = GetComponent<Text>();
您的score
变量被初始化为空值。
当您尝试使用属性score
时,您会得到NullPointerException
。
在使用score
的属性之前,请确保已正确初始化。