提问人:maddogedge 提问时间:1/6/2023 更新时间:1/6/2023 访问量:84
Unity:在编辑器重新启动时,需要将单例脚本重新附加到游戏对象以避免空错误?
Unity: Singleton script needs to be re-attached to gameobject on Editor relaunch to avoid null error?
问:
我的单例类脚本有问题,我想得到你的帮助。
脚本最终可以正常工作,但每次启动 Unity 编辑器时,我都需要删除脚本并将其重新附加到我的游戏对象,以避免 null 异常错误:
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;
提前致谢!
最好的,罗伯
答:
0赞
maddogedge
1/6/2023
#1
我在发布问题 1 分钟后找到了答案,哈哈:
[执行始终]
在班级的顶部似乎解决了它。我还把有问题的脚本放在脚本执行顺序的默认执行时间之前
评论
Awake