2
我在Unity製作遊戲。我在隨機位置上實例化(圓形)GameObjects
,並且效果很好。我正在嘗試做的是僅實例化與其他GameObjects
不會重疊的位置。沒有解決方案,我在互聯網上找到解決我的問題,所以我該怎麼辦?這可能嗎?如何在隨機碰撞位置實例化GameObject?
我在Unity製作遊戲。我在隨機位置上實例化(圓形)GameObjects
,並且效果很好。我正在嘗試做的是僅實例化與其他GameObjects
不會重疊的位置。沒有解決方案,我在互聯網上找到解決我的問題,所以我該怎麼辦?這可能嗎?如何在隨機碰撞位置實例化GameObject?
好的。爲了檢測您的圓圈是否有空間,您需要使用對撞機或數學/體積公式。但無論你如何操作,你都需要引用一個位置(變換x,y,z)來對一個區域進行採樣,並確定你的圓圈是否可以在那裏產生。
你可以做以下之一:
這取決於您的需求以及重疊的可能性。
希望它有幫助。
方法2比較好,但爲了避免不必要的實例化/銷燬GOs,方法2應該得到改進 - spawner是層次結構中的遊戲對象,它永遠不會被破壞,它有一個正確半徑的圓形對撞機,它是通過將新的隨機位置提供給它的'Transform'來檢查這個位置是否沒有其他物體 - 如果是的話,那麼你可以實例化新的遊戲對象,如果沒有,則選擇另一個隨機位置,直到獲得一個自由的位置。 – Galandil
我同意,第二個比方法1更好,更少浪費。我喜歡你的解決方案,讓spawner對象四處移動以檢查它是否是合適的產卵位置。這是第三點,但更好地思考的地方。 –
謝謝你的回答!方法2號我的需求最好的套房。 所以你的意思是我創建一個透明的遊戲對象,如果在生成時沒有大腸桿菌感染,請破壞透明遊戲對象並在那個位置產生真正的遊戲對象。如果發生碰撞,請刪除transaprent,並嘗試其他位置。我對嗎? –