当我点击卡片时,我不断收到此错误,因此我可以移动它。
NullReferenceException:未将对象引用设置为对象的实例 CardProspector.OnMouseUpAsButton()(在Assets / __ Scripts / CardProspector.cs:17) UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32,Int32)
该异常表示我的CardProspector
类中的以下方法:
override public void OnMouseUpAsButton() {
Prospector.S.CardClicked(this); // line 17
base.OnMouseUpAsButton();
}
但是该变量应该由我的Prospector
类实例化,其相关部分如下所示:
public class Prospector : MonoBehaviour {
static public Prospector S;
...
...
// Use this for initialization
void awake() {
S = this;
}
...
...
}
答案 0 :(得分:3)
Awake()区分大小写,永远不会在您的代码中调用。
答案 1 :(得分:0)
这部分信息可以解决问题所在:
(at Assets/__Scripts/CardProspector.cs:17)
“:17”表示CardProspector.cs文件的第17行,转换为以下行:
Prospector.S.CardClicked(this);
这表明静态属性“S”为空 - 它尚未定义。
由于“S”是在方法Awake()中定义的,因此您需要在以任何方式引用属性“S”之前调用Awake()。