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