1
目前,我有兩個隨機圍繞一個圓圈產卵的球,它們之間的最小距離爲0.3,因此它們不會相互碰撞。但是,我希望玩家設定產卵量,我需要這些球隨機產卵,但距離彼此最小。在距離彼此最小距離的圓上隨機產生數量的GameObjects
用我的代碼,大於2的球數量可能有兩個球互相重疊的機會,因爲我只參考了最後一個產卵球的位置spawnConstant
。
當我試圖找出數組,我遇到了同樣的問題,只有位置指向陣列中的一個位置。附件是當前代碼:
IEnumerator SpawnBalls() {
Vector3 spawnConstant = new Vector3();
Vector3 spawnPosition = new Vector3();
for (int i = 0; i < ballNumber; i++) {
if (i == 0) {
spawnPosition = Random.insideUnitCircle.normalized * 0.7f;
Instantiate (ball, spawnPosition, Quaternion.identity);
Debug.Log ("wolo");
spawnConstant = spawnPosition;
} else if (i > 0) {
spawnPosition = Random.insideUnitCircle.normalized * 0.7f;
while (Vector3.Distance (spawnPosition, spawnConstant) <= 0.3f) {
spawnPosition = Random.insideUnitCircle.normalized * 0.7f;
}
spawnConstant = spawnPosition;
Instantiate (ball, spawnPosition, Quaternion.identity);
Debug.Log ("yolo");
}
}
yield return null;
}
我怎樣才能讓每一個球是指所有前兩者的位置,並從中產生一個最小距離?