Где хранить данные, которые нужны большому количеству объектов (других классов)?

В который раз уже сталкиваюсь с одной и той же проблемой, но не могу понять как лучше её решить. Работаю в unity, есть класс Crane, он является компонентом 2D объекта крана на сцене, но таких кранов много. Есть 12 точек куда они могут поехать, выбирается одна случайная, после того как кран достигнет точки он сбрасывает груз, уезжает и удаляется со сцены, появляется новый кран и т.д. Хранить коллекцию из точек у каждого крана, ну наверно это глупо в моём случае, поэтому я в классе GameManager написал следующий код:

[SerializeField]
private List<Vector3> boxesDown = new List<Vector3>(12);

public Vector3 GetPositionBoxDown()
{
    return boxesDown[Random.Range(0, 11)];
}

private void FillBoxesDown()
{
    float posX = 5.744F;
    for (int i = 0; i < boxesDown.Capacity; i++)
    {
        Vector3 posBox = new Vector3(posX, 2.912F, 0);
        boxesDown.Add(posBox);
        posX -= 1.075F;
    }
}

void Start()
{
    FillBoxesDown();
}

Создавать экземпляр класса GamaManager ещё глупее, чем хранить коллекцию точек у каждого крана. Можно пойти через статические переменные, методы. В общем, я надеюсь, что раскрыл вопрос.


Ответы (0 шт):