【问题标题】:How to stop Rigid bodies from exterting forces on other objects in Unity 3D [duplicate]如何阻止刚体在Unity 3D中对其他对象施加力[重复]
【发布时间】:2016-02-13 15:48:31
【问题描述】:

是否可以阻止两个对象/碰撞器/刚体相互施加力,同时仍然检查它们之间的碰撞?

我知道您可以通过检查 Collider2D 组件上的“Is Trigger”属性来做到这一点,但如果我这样做,对象将不再站在平台上并跌倒。

我知道你可以使用 Physics.IgnoreCollision 但问题是我确实希望发生碰撞,我正在通过 OnTriggerEnter 方法检查它。我只是想让对象停止相互施力,就像用它拖着对方一样。

将其视为经典的街机平台游戏,敌人可以通过与它碰撞但穿过它来杀死玩家。或者在游戏开始时短时间内使其无敌。

【问题讨论】:

    标签: unity3d collision-detection physics rigid-bodies


    【解决方案1】:

    检查 isKinematic 刻度。

    然后您可以通过变换控制您的对象,并且仍然可以检测碰撞而无需弹跳或强制。

    对于无敌情况,玩家不受影响(通常是半透明的),您可以禁用碰撞器。

    【讨论】:

    • 但是如果我检查 isKinematic,我将不再能够使用刚体物理并且对于所有的跳跃,重力相关的编码需要由我来完成吗?现在,我正在使用刚体来控制跳跃行为等。其次,我不能禁用碰撞器,否则物体会从平台(和屏幕)上掉下来并继续这样做,因为缺少任何碰撞器。
    猜你喜欢
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多