我创建了一个脚本来显示玩家玩我的游戏的时间。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
public class Stopwatch : MonoBehaviour
{
bool stopwatchActive = false;
float currentTime;
public Text currentTimeText;
// Start is called before the first frame update
void Start()
{
currentTime = 0;
StartStopwatch();
}
// Update is called once per frame
void Update()
{
if (stopwatchActive == true)
{
currentTime = currentTime + Time.deltaTime;
}
TimeSpan time = TimeSpan.FromSeconds(currentTime);
currentTimeText.text = time.Seconds.ToString();
}
public void StartStopwatch()
{
stopwatchActive = true;
}
public void StopStopwatch()
{
stopwatchActive = false;
}
}
我分配了所有内容并进行了测试。一切都工作得很好,但我在Unity中得到这个错误:
NullReferenceException: Object reference not set to an instance of an object
Stopwatch.Update () (at Assets/Scripts/Other/Stopwatch.cs:28)
(我在VS中没有错误)
代码有问题吗?
(对不起,如果这是一个愚蠢的错误,因为我是新的脚本)
您的currentTimeText
公共变量似乎没有在检查器中分配。
您正在接收的异常是空引用异常。这意味着您正在尝试从Null更改或读取数据。未设置的变量。
在这里更好地解释:什么是NullReferenceException,以及如何修复它?
异常发生在更新方法的第27行。
编辑:
提示,在Update方法的开头插入Console.Log(variable);
。