Суть такова что на танчик устанавливается динамически башни. Почему динамически? Да просто потому что я не знаю сколько будет установлено башен и какой модификации на танках, но я хочу реализовать модульность и многобашенность.
Танки реализованы готовыми префабами, то есть на них висит просто класс Tank и там я выставляю количество башен и их возможные модификации.
Модули же это отдельные префабы, т.е : башня,гусеницы, стволы, корпус.
От сервера приходит инфа о том, какие модификации у башен,стволов и т.д. на каждом танке, и на сцене собираются как конструкторы танки союзников и противников соответственно.
Теперь ближе к телу:
Есть у меня массив типа Turret
Синтаксис:
Используется csharp
Turret[] mTurrets;
Мне в одном из методов нужно забить массив ссылками на экземпляры Turret, чтобы потом можно было с ними общаться.
Синтаксис:
Используется csharp
//Установка всех башен
for (byte i = 0; i <= (valueTurrets-1); i++)
{
GameObject tempTurret = Instantiate(turretType[typeOfTurrets[i]], mHull.turretPosition[i].position, mHull.turretPosition[i].rotation) as GameObject;
tempTurret.name = "Turret" + (i + 1);
tempTurret.transform.parent = transform;
mTurrets[i] = tempTurret.GetComponent<Turret>();
}
for (byte i = 0; i <= (valueTurrets-1); i++)
{
GameObject tempTurret = Instantiate(turretType[typeOfTurrets[i]], mHull.turretPosition[i].position, mHull.turretPosition[i].rotation) as GameObject;
tempTurret.name = "Turret" + (i + 1);
tempTurret.transform.parent = transform;
mTurrets[i] = tempTurret.GetComponent<Turret>();
}
Но мне говорят мол "Ссылка на объект не указывает на экземпляр объекта" или "Object reference not set to an instance of an object"
Если объявить просто переменную типа Turret и присвоить ей, то все будет ок, но мне нужно массив, потому что я не знаю сколько точно будет башен.
Синтаксис:
Используется csharp
Turret mTurret = tempTurret.GetComponent<Turret>();
Сейчас я сделал так, что забиваю массив самими башнями и делаю GetComponent когда нужно, но это не очень удобно.
Если кто может объяснить что я делаю не так, скажу огромное спасибо.