首页 文章

获取两个移动点之间的所有命中对象?

提问于
浏览
0

我想在玩家和相机之间设置透明的所有树木,我的游戏自上而下,相机和玩家之间的矢量发生变化 . 那么,如何在两点之间进行Raycast并获得被光线击中的所有对象?我知道有两个点之间的光线投射Linecast,但它只返回第一个对象,另一方面RaycastAll只能在特定的方向投射...任何想法如何在玩家和相机之间投射光线并获得所有命中对象?

2 回答

  • 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

    快速搜索并查看this并在树上使用它,当它们对相机可见时,然后用对象做你想做的事情

    注意:这个事件可能会被渲染这些物体的任何相机触发,因此请注意您使用哪个相机来渲染树木是正确的

相关问题