私は以下の単純なシーンを持っています:床の場合は(0、0、0)、(0、2、0)の場合は1サイズのボックス。私は、単純な重力と使用次のコードを実行しよう:CharacterControllerのIsGroundedは安定していません
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の仕組みですが、ドキュメントではそれについて何も見つかりません。文字のコントローラは
接地されているとき
では
verticalVelocity = 0;
を交換してくださいセット? –
@このプロパティはUnityエンジンによって制御されます。私はそれを設定しません。 –