2016-09-27 48 views
0

我有以下简单的场景:在(0,0,0)楼层和1大小框在(0,2,0)的缩放框。我尝试做简单的重力和使用下面的代码:是在CharacterController不稳定的地方

private float gravity = 1.0f; 
private Vector3 moveVector; 

void Update() 
{ 
    if (characterController.IsGrounded) 
    { 
     Debug.Log("is grounded"); 
     verticalVelocity = 0; 
    } 
    else 
    { 
     Debug.Log("not grounded"); 
     verticalVelocity -= gravity; 
    } 

    Debug.Log("vertical velocity:" + verticalVelocity); 

    moveVector.x = 0; 
    moveVector.y = verticalVelocity; 
    moveVector.z = 0; 

    characterController.Move(moveVector * Time.deltaTime); 
} 

我在日志中看到该事件时,对象是我一直接地/不接地的消息在地板上。视觉对象是在地板上,而不是摆动。 当物体在地板上时,为什么我没有不停的“停飞”? 也许这是CharacterController的工作原理,但在文档中我找不到它。

+0

我们可以看到代码其中'characterController.IsGrounded'一些重力组? –

+0

@ḞḹáḿíṅḡⱫỏḿƀíé此属性由Unity引擎控制。我没有设置它。 –

回答

0

有同样的问题

刚把当角色控制器接地

更换verticalVelocity = 0;

通过 verticalVelocity = -gravity * Time.deltaTime;

+0

不幸的是问题仍在这里:isGrounded产生真假。你有正确的逻辑代码示例? –