Unity 2D反射/弹跳

时间:2018-11-08 18:12:48

标签: unity3d 2d

所以我正在用Unity 360°射击制作2D平台游戏。 我希望我的子弹碰到东西(想想台球)时能被反射出来。

如果子弹从天花板或地板上弹起,则下面的代码有效。问题是,当我从侧面击打物体时,子弹的新方向正好偏离了180°。

    private void OnTriggerEnter2D(Collider2D col)
{
    if (col.gameObject.tag != "Player" && col.gameObject.tag != "Bullet")
    {
        ContactPoint2D[] contacts = new ContactPoint2D[10];
        col.GetContacts(contacts);

        Vector3 currentBulletMoveVector = transform.right;
        Vector2  newBulletMoveVector = Vector2.Reflect(currentBulletMoveVector, contacts[0].normal);

        transform.right = new Vector3(newBulletMoveVector.x, newBulletMoveVector.y, 0);
    }
}

关于我哪里出了问题或如何解决此问题的任何建议?

0 个答案:

没有答案