【发布时间】:2020-07-02 21:16:32
【问题描述】:
我在 Unity 中遇到了一种错误,可能是因为我几乎是新手: 我有一个正确存在于内存中的 MonoBehaviour 对象。 为了代码组织,这个对象有两个标准 System.Object 类的成员,需要通过新的调用来创建。
class A
{
// ...
}
class B
{
// ...
}
class Status : MonoBehaviour
{
A m_AVar;
B m_BVar;
public A AVar
{
get {return m_AVar;}
protected set { m_AVar = value; }
}
public B BVar
{
get { return m_BVar; }
protected set { m_BVar = value; }
}
void Awake()
{
// SingletonImplementation
}
void Start()
{
m_AVar = new A();
m_BVar = new B();
}
在游戏中的某个时刻,有人决定调用我的 Status.ExecuteSomeAction():
public void ExecuteSomeAction()
{
AVar.DoSome();
BVar.DoSomethingElse();
}
一切顺利。而最后通过 UIButton.OnClickEvent:
public void ExecuteOnClickAction()
{
AVar.Foo();
}
但是不管什么 AVar 结果都是 null。左右阅读,我觉得那些 System.Object 的幕后有些东西我仍然没有得到。
我哪里做错了?
【问题讨论】: