Вот очень упрощенная версия моего кода:
Код: Выделить всё
public class Activator : MonoBehaviour
{
public List objectsToActivate;
public virtual void Start()
{
// Trying to access objects in the list
foreach (var obj in objectsToActivate)
{
Debug.Log(obj); // This logs "null"
}
}
}
public class SpecificActivator : Activator
{
//Additional stuff
}
public abstract class Activable : MonoBehaviour
{
public bool activated;
public virtual void Activate()
{
activated = true;
}
}
public class FM : Activable
{
public override void Activate()
{
base.Activate();
// Additional logic for FM
}
}
все в порядке
все становится нулевым, и список пуст во время выполнения
Пытался использовать декоратор [SerializeReference], но это не сработало.
Если я использую для этих игровых объектов только скрипт базового класса Activable вместо SpecificActivable, это работает.
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-in-unity