在unity3d(2d)中碰撞后忽略物理

Posted

技术标签:

【中文标题】在unity3d(2d)中碰撞后忽略物理【英文标题】:Ignore physics after collision in unity3d(2d) 【发布时间】:2018-01-28 02:55:51 【问题描述】:

如何强制 Unity 在碰撞后不改变物体的速度和方向?我需要得到OnCollisionEnter2d事件,但我不需要自动改变速度和方向;我想手动完成。

【问题讨论】:

【参考方案1】:

我需要获取 OnCollisionEnter2d 事件,但我不需要 自动改变速度和方向,因为我想做 手动

如果不想在与另一个Object发生碰撞时影响该Object,则需要将Collider标记为Trigger。

在此之后,使用触发函数而不是碰撞函数。

void OnTriggerEnter2D(Collider2D other) 



它会检测到物体碰撞它不会移动它们。然后,您可以根据需要手动移动它们。

【讨论】:

但我需要让 Collision2D 手动构建反射向量,在 OnTriggerEnter2D 中没有碰撞 - 只有碰撞器。 手动构建反射向量不需要Collision2D,为什么需要它?您可以在问题中编辑和发布您的反射器代码。 我需要获取标准 Vector3.Reflect(oldVector, normalized)。但是没有 Collision2D 我没有归一化向量 - 我怎么能得到它? 您抱怨您需要 Collider2D。我要求您发布使用 Collision2D 的反射代码,但您拒绝这样做。您在上面发布的内容与 Collision2D 无关,也看不到它是如何使用 Collision2D 的。请注意,此问题已回答标题中提出的问题。如果这无关紧要,您可以创建新问题。编码愉快!

以上是关于在unity3d(2d)中碰撞后忽略物理的主要内容,如果未能解决你的问题,请参考以下文章

Unity2D碰撞穿透的问题

unity3d导入带动画的模型怎么添加物理

Unity3D使用时发现的问题及解决方法(触发碰撞条件)

Unity3d -- Collider(碰撞器与触发器)

unity3d研究1-物理碰撞OnCollision和非物理碰撞OnTrigge的区别

Unity2D 碰撞和一些物理