我目前遇到将大量GameObjects设置为固定位置或重置本地位置的问题。将对象正确放置在第一帧上,但是将它们放置在第一帧后,它们开始以某种圆形的方式散布在第一帧中。这些对象应该在随机方向上移动,但是我已经在向量列表中精确确定了它们的前5个方向。即使那样,它们的行为也像在picture中那样,对于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逻辑,而circle []是移动的对象,它们在发生碰撞时会消失。
我需要的是这些对象的初始位置始终是相同的,因为否则该算法将无用-代理将无法学习路径,也不会得到改善。
我正在使用Unity 2018.3.3及其2d项目。