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

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

【问题讨论】:

    标签: c# unity3d game-physics


    【解决方案1】:

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

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

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

    void OnTriggerEnter2D(Collider2D other) 
    {
    
    }
    

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

    【讨论】:

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