2017-05-27 118 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

相关问题