与没有刚体的 BoxColliders 碰撞

问题描述 投票:0回答:1

那么,如果两个

BoxCollider2D
都没有
Rigidbodies
,两个物体是否有可能相互碰撞?我使用了 Sebastian Lague 的
2D
教程,但他没有使用
Rigidbodies

我尝试过但没有成功,希望找到一种可行的方法。

unity-game-engine collision-detection
1个回答
0
投票

检测碰撞时,重要的是要确保:

  • 两个
    GameObjects
    都有一个源自
    Behavior
    Collider2D
    ,无论它是
    Circle
    Box
    Capsule
    还是自定义。
  • 2 个
    GameObjects
    之间的碰撞,一个带有
    2D
    和另一个带有
    3D
    Collider
    之间的碰撞在任何情况下都是不可能的
  • 2 个
    GameObjects
    中的一个或两者都有
    Rigidbody2D
  • Rigibody2D
    simulated
    ,无论其
    Body Type
    以及
    Collider2Ds
    是否启用
    isTrigger
  • Rigidbody2D
    必须是...,如果同一个
    Collider2D
    上的
    GameObject
    isTrigger
    • 启用
      • Dynamic
      • Kinematic
    • 禁用
      • Dynamic
      • Kinematic
        ,启用
        Use full kinematic contacts
  • A
    static
    Rigidbody2D
    永远不会检测到碰撞
  • 如果两个
    Rigidbody2D
    上都有
    GameObjects
    ,则只要其中任何一个符合上述规则,就会发生碰撞
  • 当带有检测碰撞的脚本的
    OnTriggerEnter2D
    Collider2D
    时,调用方法
    trigger
    ,否则调用
    OnCollisionEnter2D
    ,无论其他
    Collider2D
    的类型

回到你的问题,使用

GameObjects
BoxCollider2Ds
等方法,两个带有
OnTriggerEnter2D
OnCollisionEnter2D
不可能相互碰撞,而其中任何一个都没有
Rigidbody2D

如果出于某种原因,您仍然希望它们在没有

Rigidbody2Ds
的情况下相互碰撞,则必须使用例如以下方法来实现自定义碰撞检测逻辑:
Raycasts

© www.soinside.com 2019 - 2024. All rights reserved.