У меня есть статическая переменная, объявленная в другом классе.Этот класс объявляет это:
public class BaseClass : MonoBehaviour
{
// Static so should only allocate once
public static SubClass m_subObj = new SubClass();
}
Я попытался выделить выделение в «замке (объекте)», но m_subObj всегда равен нулю.Я включил некоторый код, который показывает разблокированную версию.
Вот код, который стоит на нем:
public class BaseClass : MonoBehaviour
{
// Static so should only allocate once
public static SubClass m_subObj = new SubClass();
}
public class SubClass : BaseClass
{
void Start()
{
if (m_subObj)
{
Debug.Log("SubClass:Start 1 - SubClass allocated");
return;
}
// This will pass
if (!m_subObj)
{
Debug.Log("SubClass:Start() 2 - Huh? Should be allocated");
m_subObj = new SubClass();
}
// This will pass too
if (!m_subObj)
{
Debug.Log("SubClass:Start() 3 - DOUBLE Huh? Should be allocated");
}
}
Я ожидал:
(Запустите его) Подкласс: Старт 1 - статический выделенный Подкласс
Но получил:
(Запустите его) Подкласс: Старт () 2 - А?Должны быть выделены?Подкласс: Start () 3 - DOUBLE, а?Должно быть выделено