使用transform.forward时忽略Y轴或将Y轴保持为0?

时间:2019-05-13 12:55:03

标签: c# unity3d

使用transform.forward函数时,是否可以使Y轴保持静态或将其保持为相同值? 这样可以使对象在X和Z轴上移动,而在Y轴上不受影响。

 Ray ray;
            RaycastHit info;

            ray = new Ray(ObjectPosition.transform.position, ObjectPosition.transform.forward);
            bool hit = Physics.Raycast(ray, out info);

1 个答案:

答案 0 :(得分:1)

要么:

Ray ray;
RaycastHit info;
Vector3 dir = ObjectPosition.transform.forward;
dir.y = 0; // as @Jichael suggested

ray = new Ray(ObjectPosition.transform.position, dir);
bool hit = Physics.Raycast(ray, out info);

或者:

如果您需要玩家保持在同一y水平,则可以在刚体设置上选中“约束/冻结轴:y”。