将大量人口移至固定位置的问题

时间:2019-04-05 11:29:28

标签: c# unity3d genetic-algorithm

我目前遇到将大量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项目。

0 个答案:

没有答案