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
相关产品推荐
相关产品推荐

