Unity3d Unity多个协同路由空引用异常
我已经看到了相同的问题和答案,但不幸的是,我还没有完全理解如何解决这个问题,因为我得到了一个空引用异常 我尝试同时运行两个协同程序。每个都来自不同的基类。除了类的名称和激活键(一个是向上箭头,另一个是向下箭头)之外,它们都是相同的 我尝试在整个运行过程中运行这样的内容(从父类):Unity3d Unity多个协同路由空引用异常,unity3d,Unity3d,我已经看到了相同的问题和答案,但不幸的是,我还没有完全理解如何解决这个问题,因为我得到了一个空引用异常 我尝试同时运行两个协同程序。每个都来自不同的基类。除了类的名称和激活键(一个是向上箭头,另一个是向下箭头)之外,它们都是相同的 我尝试在整个运行过程中运行这样的内容(从父类): 所以我不太确定如何解决这个问题。谢谢你的帮助。被这弄糊涂了。在你的Update()函数中你调用了b.PrintMessage(),但是你还没有给出这个函数的定义,除非你的意思是b.SendMessage()?这正是我的
所以我不太确定如何解决这个问题。谢谢你的帮助。被这弄糊涂了。在你的
Update()
函数中你调用了b.PrintMessage()
,但是你还没有给出这个函数的定义,除非你的意思是b.SendMessage()
?这正是我的意思。你确定a
和b
不是null
?我很确定。如果我在没有协同程序的情况下运行它(就像一个void函数一样),它就可以正常工作。您在哪里以及如何调用您的协同程序?
public IEnumerator DetectArrow()
{
if (Input.GetKey(KeyCode.UpArrow))
{
if (PrintMessage == null)
{
PrintMessage += SendMessage;
}
}
return null;
}
public void SendMessage()
{
print("I am B.");
PrintMessage = null;
}
void Update ()
{
if (b.PrintMessage != null)
{
b.PrintMessage();
}
if (a.PrintMessage != null)
{
a.PrintMessage();
}
}