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

Unity单个物体不同层碰撞体分离实现问题求助

问题:分离角色的世界碰撞体与受击盒(Hurtbox)实现

需求

  • 角色(玩家、敌人)拥有一个用于与世界(其他角色/障碍物等)碰撞的碰撞体
  • 角色拥有另一个作为受击盒(Hurtbox)的碰撞体(通常比世界碰撞体更大)

尝试的结构

Character根GameObject [层为"default"]
  - Rigidbody2D(运动学,完整运动学碰撞)
  - BoxCollider2D(尺寸较小,仅覆盖精灵的脚部)
  - `MovementController`脚本,使用`rigidbody.Cast`进行碰撞检测,MovementFilter设置为"default"层
  * `Hurtbox`子物体 [层为"hurtbox"]
    - BoxCollider2D(覆盖精灵大部分区域(或更大范围以让敌人更容易被击中))

层矩阵设置

自定义两个层:Hitbox、Hurtbox,它们与预定义层无交互,仅以下层间存在交互:

Hitbox - Hurtbox [用于伤害判定等:当Hitbox与Hurtbox碰撞时触发相应逻辑]

当前遇到的问题

即使子物体处于不同层,其所有Collider仍会关联到父物体的Rigidbody2D,导致rigidbody.Cast同时使用“世界碰撞”BoxCollider2D和“Hurtbox”BoxCollider2D的合并形状。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:35:19