我到处查看,包括 Unity 文档,但似乎找不到任何关于如何使用 Unity 的 Vector2.Reflect() 函数的好例子。我试图用它来控制球撞墙时的方向(在 2D Breakout 游戏中)。它需要 2 个参数(inDirection,inNormal),但我似乎无法弄清楚如何使用它。任何帮助,将不胜感激。
问问题
13755 次
2 回答
9
inDirection
应该是球的速度,应该inNormal
是垂直于墙壁的单位矢量。
试着把它放在你的球对象中:
void OnCollisionEnter(Collision collision)
{
Vector2D inDirection = GetComponent<RigidBody2D>().velocity;
Vector2D inNormal = collision.contacts[0].normal;
Vector2D newVelocity = Vector2D.Reflect(inDirection, inNormal);
}
注意:我目前无法测试该代码,因此可能需要根据事物名称进行调整。
于 2016-12-13T21:27:09.537 回答