如何根据表面获取正确的运动方向矢量

时间:2019-10-05 19:17:24

标签: unity3d vector direction

因此,我正在尝试编写自己的第三人称角色控制器,并试图找到一种方法来根据接触面法线和玩家的方向向量(transform.forward)计算方向向量。 Vectors 我已附上图片,因此更加清晰

1 个答案:

答案 0 :(得分:1)

在我回答之前,我想问你为什么需要这个向量?您打算怎么做?

与此同时,这是一种实现方法:

  1. 从玩家位置向下Physics.Raycast(player.transform.position, Vector3.Down, out hit, Mathf.Infinity, groundLayerMask)进行射线广播(也许从玩家中间进行射线广播,以确保您不会错过地面)
  2. 如果没有击中,则意味着从玩家的位置开始,就没有地面(因此,没有要计算的向量)
  3. 如果确实有命中,它将包含一个hit.normal,然后可以将其乘以Quaternion.Euler(90, 0, 0)-实际上,这将使地面的法线在X轴上旋转90度,得到您要寻找的归一化向量