我想用这段代码生成一些球(使用 CircleCollider2d 和静态 Rigidbody2D)。我使用一个按钮来查看它是否有效,当我使用它时一切正常。但是当我使用循环在单个帧中创建一堆球时,它们看起来是重叠的。我认为这是因为您必须等待物理更新,但我需要同时生成所有球。有什么想法或解决方案吗?
这是我的第一个问题,我的英语说得不好,但我希望我已经解释清楚了。非常感谢
public void CreatePointBall()
{
Vector2 pos;
float x, y;
int tries = 0;
do
{
tries++;
x = Random.Range(MIN_POS_X, MAX_POS_X);
y = Random.Range(MIN_POS_Y, MAX_POS_Y);
pos = new Vector2(x, y);
} while (Physics2D.OverlapCircle(pos, radius, LayerMask.GetMask("PointBall")) != null && tries < MAX_TRIES);
if(tries == MAX_TRIES) Debug.Log("MAX TRIES WITHOUT A CORRECT POS");
GameObject go = Instantiate(pointBallPrefab);
go.name = "PointBall";
go.transform.parent = transform;
go.transform.position = pos;
pointBallsList.Add(go);
}