Kaz*_*Kaz 1 c# vector unity-game-engine breakout pong
我到处看都包括Unity文档,但似乎找不到如何使用Unity的Vector2.Reflect()函数的任何好例子.我试图用这个来控制球的方向(在2D爆发游戏中)当它撞到墙壁时.它需要2个参数(inDirection,inNormal)但我似乎无法弄清楚如何使用它.任何帮助,将不胜感激.
Vector2 Reflect(Vector2 inDirection, Vector2 inNormal):
inDirection:黑色箭头
inNormal: 红色箭头
return output: 绿色箭头
的inDirection应该是你的球的速度和inNormal应该是垂直于墙壁上的单位向量。
尝试将其放入您的球对象中:
void OnCollisionEnter(Collision collision)
{
Vector2D inDirection = GetComponent<RigidBody2D>().velocity;
Vector2D inNormal = collision.contacts[0].normal;
Vector2D newVelocity = Vector2D.Reflect(inDirection, inNormal);
}
Run Code Online (Sandbox Code Playgroud)
注意:我目前无法测试该代码,因此可能需要在事物名称方面进行调整。