【发布时间】:2020-07-04 10:29:27
【问题描述】:
我开始学习 Unity,但我遇到了 Raycasting 的问题。所以我有这个代码
if(Physics.Raycast(cam.position,cam.forward,out hit,100f,layer)){
Debug.Log(hit.point);
if(hit.transform!=this.transform){
showPreview(hit);
print(hit.transform.name);
}
}
它适用于物体和其他任何东西,除了地形。如果地形是平坦的,则光线投射不会检测到它,但如果我制作一些山脉,它就可以正常工作。 Flat terrain, zero log/Tiny hill, it detects我尝试改变距离,但没有成功。
【问题讨论】:
-
你确定你是在 100 个单位内击中地形吗?如果您将相机向下旋转更多并靠近地形会发生什么?
-
我还会对图层进行三次检查。在项目之间移动场景可能会弄乱图层引用