Unity 2D Reflect / Ricochet - PullRequest
       23

Unity 2D Reflect / Ricochet

0 голосов
/ 08 ноября 2018

, поэтому я делаю 2D платформерную игру со стрельбой на 360 ° в Unity. Я хочу, чтобы мои пули отражались, когда они что-то били (например, бильярд).

Код ниже работает, если пули рикошетят с потолка или пола. Проблема в том, что когда я бью что-то со стороны, новое направление пули точно на 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);
    }
}

Любой совет, где я ошибся или как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...