Имеется центральный объект "Офицер", вокруг него двигаются "Солдаты". Солдаты должны размещаться равномерно и на одинаково удаленном расстоянии вокруг "Офицера" образуя окружность. Если солдат становится слишком много что бы уместиться в эту окружность она расширяется. Изначально имеется дефолтный радиус данной окружности и 3 солдата. Как рассчитывать в каких точках этой окружности они должны располагаться ? Насколько я понимаю для 3 солдат это должны быть вершины вписанного равностороннего треугольника
public class OfficerComponent : MonoBehaviour
{
private Transform _collectionСenter;
private float _radiusCollection;
private List<Vector3> _locationPoints;
private LinkedList<SolderLogicComponent> _solderLogicComponents;
private void Awake()
{
_locationPoints = new List<Vector3>();
}
public void Init(Transform collectionСenter, float radiusCollection)
{
_collectionСenter = collectionСenter;
_radiusCollection = radiusCollection;
}
private void RecalculationLocationPoints()
{
var countSection = _solderLogicComponents.Count;
}
private void DistributeTargetLocation()
{
var index = 0;
for (var node = _solderLogicComponents.First; node != null; node = node.Next)
{
node.Value.TargetLocationPoint = _locationPoints[index];
index++;
}
}
public void AddSolder(SolderLogicComponent solderLogicComponent)
{
_solderLogicComponents.AddLast(solderLogicComponent);
RecalculationLocationPoints();
DistributeTargetLocation();
}
public void RemoveSolder(SolderLogicComponent solderLogicComponent)
{
_solderLogicComponents.Remove(solderLogicComponent);
RecalculationLocationPoints();
DistributeTargetLocation();
}
}