В настоящее время у меня возникла проблема с установкой большой совокупности объектов GameObject на фиксированную позицию или сбросом локальной позиции. Объекты правильно размещаются в первом кадре, но затем они начинают рассыпаться по кругу в первых кадрах после того, как они были размещены там. Предполагается, что объекты движутся в произвольном направлении, но я сделал их первые 5 направлений в векторном списке, чтобы быть точным. Даже тогда они ведут себя так, как на этой картинке , которая просто невозможна для 600 объектов в 9 местах. У объектов есть коллайдеры, но коллизия между ними отключена на слое коллизий жестких тел.
private void ResetScene()
{
if (algorithmEnabled)
{
playerCounter = size;
Algorithm();
}
else
playerCounter = 1;
for(int i = 0; i < circles.Length; i++)
{
circles[i].transform.position = circlePos[i];
}
foreach(GameObject g in players)
{
g.transform.position = parent.transform.position;
g.transform.localPosition = Vector2.zero;
g.SetActive(true);
}
}
Функция Algorithm () - это, по сути, целая логика GA, которую я реализовал, а круги [] - это движущийся объект, который убивает при столкновении.
Мне нужно, чтобы начальное местоположение этих объектов всегда было идентичным, потому что в противном случае алгоритм бесполезен - агенты не узнают путь и не улучшат его.
Я использую Unity 2018.3.3 и его 2D-проект.