C# 我怎样才能在统一体中检测碰撞发生的位置?

C# 我怎样才能在统一体中检测碰撞发生的位置?,c#,unity3d,scripting,C#,Unity3d,Scripting,我正在做一个乒乓球游戏,我需要检测球打在桨上的位置。当球与桨碰撞时,我如何确定球相对于桨的位置?我是否必须确定每个对象的位置,然后进行比较,或者是否有其他方法进行比较,可能使用getContact方法 void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.tag == "rightRect" || col.gameObject.tag == "leftRect") { //What do I pu

我正在做一个乒乓球游戏,我需要检测球打在桨上的位置。当球与桨碰撞时,我如何确定球相对于桨的位置?我是否必须确定每个对象的位置,然后进行比较,或者是否有其他方法进行比较,可能使用getContact方法

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

}

一旦我得到了相对位置,我就可以做数学运算来计算出球应该去的方向,我只需要得到那个值。谢谢

使用球上的
OnCollisionInter2D(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...
    }

}

哦,谢谢你。我没有意识到转换可以给你值,我以为它只允许你操纵它们。这会有用的!