【发布时间】:2023-01-06 23:14:45
【问题描述】:
我的单例类脚本有问题,希望得到您的帮助。
该脚本最终可以运行,但每次我启动 Unity Editor 时,我都需要删除脚本并将其重新附加到我的游戏对象,以避免空异常错误:
NullReferenceException: Object reference not set to an instance of an object
任何想法为什么?我在想我没有正确初始化,但不知道从那里去哪里。
这是作为组件附加的简化单例代码:
using UnityEngine;
public class Conductor : MonoBehaviour
{
public static Conductor Timing { get; private set; }
[SerializeField] private double bpm; // beats per minute
private void Awake()
{
if (Timing != null && Timing != this)
Destroy(this);
else
Timing = this;
}
public double Bpm
{
get { return bpm; }
set
{
bpm = value;
}
}
}
我在另一个脚本中调用代码如下,例如
Conductor.Timing.Bpm;
提前致谢!
最好的,罗伯
【问题讨论】:
-
其他脚本.. 是编辑器脚本吗?否则,如果这是在运行时,我不明白为什么它不应该工作..如果其他脚本
Awake在此脚本之前执行,则可能执行顺序问题除外......
标签: c# unity3d singleton nullreferenceexception