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

Unity3D中导入Blender的网格使用Mesh Collider无法触发鼠标交互

解决Mesh Collider无法触发OnMouseEnter/Exit的问题

嘿,你的ChangeColor脚本逻辑完全没问题,问题出在Unity对Mesh Collider的交互检测规则上!咱们一步步调整就能搞定:

方法1:保留物理碰撞能力的设置

如果你的三角形物体需要和其他物理对象产生碰撞(比如被玩家推动),按以下步骤操作:

  • 选中你的三角形物体,在Inspector面板找到Mesh Collider组件
  • 勾选Convex选项:Unity仅允许凸面体Mesh Collider参与射线检测(也就是触发OnMouse系列事件),非凸的Mesh Collider默认只能作为静态场景障碍物,无法响应交互
  • 若Convex选项呈灰色无法勾选:打开Blender模型的导入设置,找到Mesh标签,勾选Read/Write Enabled后点击Apply——Unity需要读取Mesh数据才能生成凸面体碰撞器

方法2:仅需交互的简化设置

如果你的物体只需要实现悬停变色,不需要物理碰撞效果,直接这么做:

  • 选中Mesh Collider组件,勾选Is Trigger选项
  • 此时不管Mesh是否为凸面体,射线检测都能正常触发OnMouseEnter/Exit事件,你的脚本直接就能生效

额外检查项

  • 确认物体的Layer未被排除在射线检测外:打开Edit > Project Settings > Physics,在Layer Collision Matrix中,确保物体所在Layer与主相机的Layer(默认都是Default)处于可互相检测的状态
  • 3D场景无需额外组件,但如果是UI混合场景,要确保主相机添加了Physics Raycaster组件

调整完成后,你的悬停变色功能就能正常工作啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:03:01