C# 我怎样才能在统一体中检测碰撞发生的位置?
我正在做一个乒乓球游戏,我需要检测球打在桨上的位置。当球与桨碰撞时,我如何确定球相对于桨的位置?我是否必须确定每个对象的位置,然后进行比较,或者是否有其他方法进行比较,可能使用getContact方法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
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...
}
}
哦,谢谢你。我没有意识到转换可以给你值,我以为它只允许你操纵它们。这会有用的!