在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)中碰撞后忽略物理的主要内容,如果未能解决你的问题,请参考以下文章