我正在尝试制作乒乓球游戏,我需要检测球在桨上的撞击位置。当它们碰撞时,如何确定球相对于桨的位置?我是否必须确定每个对象的位置,然后进行比较,或者是否有其他方法可以使用getContact方法?
void OnCollisionEnter2D(Collision2D col)
{
if (col.gameObject.tag == "rightRect" || col.gameObject.tag == "leftRect")
{
//What do I put here?
}
}
一旦获得相对位置,我就可以进行数学运算以确定球应该走的方向,我只需要获取该值即可。谢谢!
答案 0 :(得分:3)
将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...
}
}