Unity - how to use Vector2.Reflect()

前端 未结 2 757
野性不改
野性不改 2021-01-18 18:27

I have looked everywhere including the Unity documentation but cannot seem to find any good examples of how to use Unity\'s Vector2.Reflect() function. I am trying to use th

相关标签:
2条回答
  • 2021-01-18 18:52

    The inDirection should be the velocity of your ball and the inNormal should be the unit vector that is perpendicular to your wall.

    Try putting this in your ball object:

    void OnCollisionEnter(Collision collision)
    {
        Vector2D inDirection = GetComponent<RigidBody2D>().velocity;
        Vector2D inNormal = collision.contacts[0].normal;
        Vector2D newVelocity = Vector2D.Reflect(inDirection, inNormal);
    }
    

    NOTE: I cannot currently test that code, so it may need tweaking in terms of the names of things.

    0 讨论(0)
  • 2021-01-18 19:09

    Vector2 Reflect(Vector2 inDirection, Vector2 inNormal):

    inDirection: black arrow

    inNormal: red arrow

    return output: green arrow

    0 讨论(0)
提交回复
热议问题