我有一个运行中的3D游戏。红色矩形是我的玩家,位于某种坡道或屋顶上。他没有旋转。现在当他落在这样的坡道上时,我可以通过RaycastHit normal获得绿色向量。
但我想要得到的是紫色向量,这样我就可以给我的玩家速度滑下去。我如何获得那个向量,或者用所给的变量是不可能的?
紫色向量是最接近Vector3.down且切线与屋顶相切的向量。
编辑:我想我已经知道如何获取那个向量了,但我仍然不明白如何计算它。在第二张图片中给出了向量a和b。现在我需要得到向量c,它与从a到b的方向垂直成90度。
我已经弄清楚了。如果有人想知道:我只是这样使用Vector3.RotateTowards:
rigid.velocity = Vector3.RotateTowards(hit.normal, -transform.up, Mathf.PI / 2, 0);