跳转至

模型资源

命名规范 · 碰撞设置 · 常见问题。

命名规范

前缀 类型 示例
SM_ 静态网格 SM_Beaker_250ml
SK_ 骨骼网格 SK_Character_Female
M_ 基础材质 M_Glass
MI_ 材质实例 MI_Glass_Blue
T_ 贴图 T_Beaker_Diffuse

项目中存在部分中文命名的资产(如 材质_015垃圾桶_立方体),中文路径在打包、DDC 缓存等环节可能出问题,建议后续逐步改为英文。

碰撞预设

每个静态网格都需要设置碰撞,否则无法被检测到。

选中模型 → 右键 → 静态网格设置 → 碰撞复杂度:

碰撞类型 说明 什么时候用
简单碰撞 用盒子、球、胶囊近似包裹模型 大部分情况,性能好
复杂碰撞 按模型三角面精确碰撞 需要精确形状时才用(比如试管口)
无碰撞 完全不参与碰撞检测 纯装饰物、背景

碰撞预设模板

选中模型 → 细节面板 → 碰撞预设下拉:

预设 效果
BlockAll 阻挡一切(需要碰撞的一般先选这个)
OverlapAll 重叠一切(只触发,不阻挡)
NoCollision 无碰撞
Custom 自定义,指定哪个通道阻挡、哪个重叠

碰撞不触发 / 点击无效的常见原因

调试技巧:视口左上角点 显示碰撞,或按 Alt+C,可以直观看到每个物体的碰撞体积。

通用原因

  1. 碰撞未生成:导入 FBX 时没勾选"自动生成碰撞",模型默认无碰撞 → 静态网格编辑器 → 碰撞菜单 → 自动凸包碰撞

  2. 碰撞预设不对:设了 NoCollision 或对目标通道设了 忽略

  3. 碰撞通道不匹配:射线/球形检测时用的碰撞通道,和模型上启用的通道不一致

  4. 碰撞体积太小:自动生成的碰撞可能只是模型的一小部分 → 静态网格编辑器里手动调整

  5. Actor 的碰撞未启用:检查 Actor 细节面板,"生成碰撞"是否勾选

  6. 检测距离不够:射线/球体检测的半径或距离太短,没够到物体

  7. Actor 被其他物体挡住:射线检测遇到第一个物体就停了,后面的检测不到。最阴的是场景里的 UI 控件遮挡——3D Widget 或 HUD 挡在物体前面,射线打到 UI 上就停了,背后的物体永远检测不到