0
グリッドに他の場所がなくなったら、プレイヤーの隣にモンスターを出現させようとしています。これは、32の場所が36の場所で占有された後を意味します。私はモンスターが私の上で産卵するのを防ぎ、お互いに産卵するのを防ぐためにループを使用しています。プレイヤーの隣にモンスターの産卵を防止する
私はこの方法で試したことは、プレイヤーの隣人をチェックすることですが、それはまだプレイヤーの隣に産まれ続けます。
// re-roll for reasons:
// 1. can't be on top of player
// 2. x and y is occupied
while((randomX == selectedUnit.GetComponent<Unit>().tileX && randomY == selectedUnit.GetComponent<Unit>().tileY) ||
occupationArray[randomX, randomY] == true) {
//TODO if monsterList < 32 then monsters shouldn't spawn next to player
if (monsterList.Count < 32 &&
((randomX == selectedUnit.GetComponent<Unit>().tileX && // x=0 y= 1 || -1
Mathf.Abs(randomY - selectedUnit.GetComponent<Unit>().tileY) == 1) ||
(Mathf.Abs(randomX - selectedUnit.GetComponent<Unit>().tileX) == 1 && // x= 1 || -1 y=0
randomY == selectedUnit.GetComponent<Unit>().tileY))) {
randomX = Random.Range(0,6);
randomY = Random.Range(0,6);
} else {
randomX = Random.Range(0,6);
randomY = Random.Range(0,6);
}
}
'(ランダム)'パフォーマンスの面でかなり悪いですしながら。プレイヤーからのランダムな角度と最小距離を指定して位置を決定し、その点に最も近いグリッド位置を見つけることを検討しましたか? –
か、タイルを反復するだけで、そのタイルにモンスターをスポーンすることができますか? –
モンスターはタイルの上にスポーンされ、プレイヤーの近くで産卵する前に他の場所にスポーンしたいと思います。 – chazefate