我正在做一个即时战略游戏,我试图处理单位形成。我已经试着找到所有单位的中心,并将其添加到位置,如果你点击它的工作,但他们仍然分散。所以,如果你能帮助我出来,我很感激。
cunj1qz11#
对于基本的解决方案,你可以使用Unity的Random.insideUnitCircle方法,该方法返回半径为1的圆内或圆上的一个随机点,这将为你提供一个可以在圆内每单位生成的随机点。如果您正在寻找使点彼此等距的功能,那么有许多解决方案,但简单的是:
Random.insideUnitCircle
1
private List<Vector3> _points = new(); for (var i = 0; i < numberOfPoints; i++) { var angle = i * Mathf.PI * 2 / numberOfPoints; var point = new Vector3(Mathf.Cos(angle), Mathf.Sin(angle), 0) * radius; _points.Add(point); }
其中numberOfPoints是您拥有的单位数,或单位Colliders,radius是选择圆的大小。
numberOfPoints
Colliders
radius
1条答案
按热度按时间cunj1qz11#
对于基本的解决方案,你可以使用Unity的
Random.insideUnitCircle
方法,该方法返回半径为1
的圆内或圆上的一个随机点,这将为你提供一个可以在圆内每单位生成的随机点。如果您正在寻找使点彼此等距的功能,那么有许多解决方案,但简单的是:
其中
numberOfPoints
是您拥有的单位数,或单位Colliders
,radius
是选择圆的大小。