2017-05-27 50 views
0

我想設置透明的玩家和相機之間的所有樹木,我的遊戲是自上而下,並且相機和玩家之間的矢量改變。那麼,如何在兩點之間Raycast並獲取所有被ray射擊的對象呢?我知道在兩點之間有一個用於raycast的Linecast,但是它只返回第一個對象,而另一方面RaycastAll只能在特定方向上投射......任何想法如何在播放器和相機之間投射光線並獲取所有被擊中的對象?獲取兩個移動點之間的所有命中對象?

回答

1

雖然Physics.RaycastAll()似乎不能立即滿足您的需求,你可以很容易地適應它給你想要的。

如果您沿着相機的方向從玩家處進行光線投射,並將其限制爲僅限玩家與相機之間的距離,那麼您只能在兩個位置之間投射光線,他們。

這裏是你如何我建議來解決:

float distToCamera = Vector3.Distance(camera.transform.position, player.transform.position); 
Vector3 dirToCamera = camera.transform.position - player.transform.position; 

RaycastHit[] hits; 
hits = Physics.RaycastAll(player.transform.position, dirToCamera, distToCamera); 

希望這有助於!如果您有任何問題,請告訴我。

+0

試過了,它工作得很好!不知道我能「創造」我自己的方向。謝謝。 – Darthy

0

快速搜索,並期待在this,並用它在你的樹,當他們成爲可見的攝像頭和後做你想做什麼都使用對象

注意:此事件可能是火與任何相機渲染這些對象,所以要小心你使用哪個攝像頭來渲染樹是正確的

+0

據我所知,會在相機上設置隱藏的所有樹木,即使樹木不在玩家和相機之間,但這是不可取的。它仍然不能解決樹木阻礙的問題。 – Darthy

相關問題