2
私はUnityでゲームを作っています。ランダムな位置に(円)GameObjects
をインスタンス化しています。うまく動作します。私がしようとしているのは、GameObjects
と重複しない位置でのみインスタンス化することです。私がインターネット上で見つけた解決策は私の問題を解決しなかったので、どうすればいいですか?これは可能ですか?ランダムな衝突のない位置でGameObjectをインスタンス化する方法は?
私はUnityでゲームを作っています。ランダムな位置に(円)GameObjects
をインスタンス化しています。うまく動作します。私がしようとしているのは、GameObjects
と重複しない位置でのみインスタンス化することです。私がインターネット上で見つけた解決策は私の問題を解決しなかったので、どうすればいいですか?これは可能ですか?ランダムな衝突のない位置でGameObjectをインスタンス化する方法は?
サークルのスペースがあるかどうかを検出するには、コライダーまたは数式/ボリュームのどちらかの式を使用する必要があります。しかし、どちらを使っていても、領域をサンプリングしてサークルを生成できるかどうかを判断するために、位置(x、y、z変換)を参照する必要があります。
次のいずれかを行うことができます:あなたはnormalyが、存在する場合、衝突がすぐにオブジェクトを破壊してしまうよう
これは、ユーザーのニーズと重複の可能性によって異なります。
希望します。
方法2は優れていますが、GOの不要なインスタンス化/破壊を避けるために改良する必要があります。スポイナーは階層内のゲームオブジェクトで、破壊されず、正しい半径のサークルコライダーを持ちます。新しいランダマイズされた位置を 'Transform'に送り、その位置が他のオブジェクトから解放されているかどうかをチェックすることによって使用されます - もしそうなら、新しいゲームオブジェクトをインスタンス化することができます。 。 – Galandil
私が同意すると、2番はメソッド1よりもずっと良くなり、無駄が少なくなります。私は、spawnerオブジェクトを適切なスポーン位置であるかどうかを確認するために移動させるという解決策が好きです。それは私が第3のポイントで行くところのようなものですが、より良い考えを通しています。 –
お返事ありがとうございます!方法番号2は、私のニーズを最もよく満たしています。 だから私は透明なgameObjectを作成し、産んだときにcoliisionがなければ透明なものを破壊し、そのものを実際のものにします。衝突があった場合は、逆に1つを破棄し、別の位置で試してください。私は正しい? –