角色在更高的地形上行走后漂浮

时间:2018-12-02 13:17:53

标签: unity3d

我想解决此问题,但找不到任何教程。问题是,如果我在较高的地形上行走角色或可以行走的任何物体。一旦我离开较高的地形,角色就会漂浮。我想要角色会留在地面上的东西。我使用的组件是角色控制器和胶囊对撞机。预先感谢大家。

PS :您看到的曲线是一个对象。它不是颠簸/升高或绘制的高度地形。

游戏将从该位置开始。 enter image description here

在较高的对象/地形上行走并向后走之后,它看起来像这样。它仍然浮动。 enter image description here

到目前为止,这是我尝试过的,但是没有用。

Ray ray = new Ray(transform.position, Vector3.down);

RaycastHit hitInfo;

LayerMask layer = 1 << LayerMask.NameToLayer("Terrain");

//cast ray
if(Physics.Raycast(ray, out hitInfo, layer))
{
    //get where on the z axis our raycast hit the ground
    float z = hitInfo.point.z;

    //copy current position into temporary container
    Vector3 pos = transform.position;

    //change z to where on the z axis our raycast hit the ground
    pos.z = z;

    //override our position with the new adjusted position.
    transform.position = pos;
}

0 个答案:

没有答案