2016-09-27 21 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產生真假。你有正確的邏輯代碼示例? –