Как я могу определить, где происходит столкновение в Unity? - PullRequest
1 голос
/ 10 июля 2019

Я пытаюсь сделать игру в понг, и мне нужно определить, где на весле мяч попадает.Как я могу определить, где находится шар относительно весла, когда они сталкиваются?Нужно ли мне определять положение каждого объекта, а затем сравнивать или есть другой способ сделать это, возможно, с помощью метода getContact?

void OnCollisionEnter2D(Collision2D col)
{
    if (col.gameObject.tag == "rightRect" || col.gameObject.tag == "leftRect")
    {
       //What do I put here?
    }

}

Как только я получу относительную позицию, я могу сделатьвыяснить, в каком направлении должен идти мяч, мне просто нужно получить это значение.Спасибо!

1 Ответ

3 голосов
/ 10 июля 2019

С OnCollisionEnter2D(Collision2D col) на мяче вы можете легко сравнить положение мяча (transform.position) с положением ракетки (col.transform.position).Вы, вероятно, больше всего интересуетесь их сравнительной позицией вдоль оси y, так что это может выглядеть так:

void OnCollisionEnter2D(Collision2D col)
{
    if (col.gameObject.tag == "rightRect" || col.gameObject.tag == "leftRect")
    {
       float ballYFromPaddle = transform.position.y - col.transform.position.y;

       // do stuff with ballYFromPaddle...
    }

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