Я столкнулся с некоторой ошибкой в 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();
}
и все go отлично. В то время как в конце UIButton.OnClickEvent:
public void ExecuteOnClickAction()
{
AVar.Foo();
}
Но независимо от того, какой результат AVar нулевой. Читая влево и вправо, я чувствую, что с этим System.Object есть что-то, чего я до сих пор не понимаю.
Где я делаю неправильно?