You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Blender创建可检测Raycast的Unity圆形Mesh Collider?

问题:Blender创建圆形Mesh无法在Unity中被Raycast检测

我正尝试用Blender创建能在Unity中被Raycast检测的圆形Mesh Collider,执行了Add>Mesh>Circle操作,但无法正常工作,请问遗漏了什么步骤?


更新内容

if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out RaycastHit hit))
{
    Vector2 textureCoord = hit.textureCoord;

    int pixelX = (int)(textureCoord.x * _templateDirtMask.width);
    int pixelY = (int)(textureCoord.y * _templateDirtMask.height);
}

注:原代码中nt pixelY为笔误,已修正为int pixelY


更新3

Blender圆形Mesh编辑界面
Unity物体Inspector面板
Unity Mesh Collider设置界面


更新4

Unity Raycast调试界面


解决步骤

  • Blender端关键操作
    默认创建的Circle是空心轮廓,必须转为实心面:进入编辑模式(Tab键),选中所有顶点,按F键生成填充面,否则导出的Mesh没有闭合碰撞形状,Unity无法正确识别碰撞体。
    导出FBX时,务必勾选Apply Transform,确保缩放、旋转、位置全部应用,避免导入Unity后变换异常导致碰撞失效。

  • Unity端配置检查
    给导入的物体添加Mesh Collider组件,静态物体无需勾选Convex;确认物体所在Layer不在Raycast忽略列表中。
    修正代码笔误(nt改为int),确保Camera.main能正确获取主相机(需给相机设置MainCamera标签),_templateDirtMask已赋值有效纹理。
    开启Scene视图Gizmos,查看Ray发射路径,或打印hit.collider判断是否检测到碰撞体。

  • 常见排查项
    重置物体变换:点击Inspector面板的Reset按钮,确保缩放为(1,1,1),避免缩放变形导致碰撞体失效。
    检查Mesh Collider是否启用,以及Physics设置中是否未忽略该物体所在层。


内容的提问来源于stack exchange,提问作者Newboy11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:10:59