我正在构建一个带有道路和房屋的简单场景。玩家能够在道路(即飞机)上传送。
但是,当光线击中房屋时,它只会穿过房屋,并允许玩家在平面延伸的范围内传送到房屋内:
如何检测射线何时击中房屋,以便阻止玩家传送?在视觉上阻挡光线穿过房子会更好。
我最初的想法是使用图层,我将房屋添加到“房屋”图层,将道路添加到“道路”图层。现在下一步是检查光线击中的游戏对象是否在道路或房屋层中,但我找不到检测该对象的方法。
当我向房屋添加网格碰撞器时,射线在撞击它时会变成红色,但只要射线在道路上结束,我仍然可以传送穿过房屋。
我认为您不需要编写自己的脚本来让光线检测图层。只需创建两个层,然后在 XR 射线交互器内部,设置 Raycast Mask 以包含“墙”层。这确保了光线被墙壁游戏对象的碰撞体阻挡。只要光线投射遮罩包含“墙”层,我场景中的墙就会阻挡来自玩家的传送光线。