Unity射线检测不到MeshCollider的原因

当我们构建的模型是单面模型时,就会出现射线检测不到MeshCollider的问题,对于渲染,我们可以Cull Off来实现双面渲染,而在射线检测时,Unity提供了一个API来控制是否检测背面:Physics.queriesHitBackfaces

案例代码:

csharp 复制代码
public bool Raycast(out RaycastHit hitOnGround, out RaycastHit hitOnStructure) 
{
    Physics.queriesHitBackfaces = true;
    
    Ray ray = m_Camera.ScreenPointToRay(Input.mousePosition);
    Physics.Raycast(ray, out hitOnGround, m_Camera.farClipPlane * 2, m_GroundLayer);
    bool onStructure = Physics.Raycast(ray, out hitOnStructure, m_Camera.farClipPlane * 2, m_StructureLayer);
    
    Physics.queriesHitBackfaces = false;

    return onStructure;
}
相关推荐
一种时光1 天前
Unity 获取当前播放的动画,判断是否是某个动画
unity·游戏引擎
速冻鱼Kiel1 天前
Lyra的相机系统
笔记·ue5·游戏引擎·虚幻
不绝1911 天前
Unity入门 :场景叠加/预制体资源包/脚本资源/生命周期函数/Inspector页面
unity·游戏引擎
在路上看风景1 天前
20. 资源和脚本的绑定关系
unity
yj爆裂鼓手1 天前
unity对象池
unity·c#
在路上看风景1 天前
3.7 SRP Batcher
unity
快乐觉主吖1 天前
Unity方便修改产品名和包名的小工具
unity·游戏引擎
孟无岐1 天前
【Laya】HttpRequest 网络请求
网络·typescript·游戏引擎·游戏程序·laya
JIes__2 天前
Unity(二)——MonoBehavior中的重要内容
unity·游戏引擎
孟无岐2 天前
【Laya】LocalStorage 本地存储
typescript·游戏引擎·游戏程序·laya