要するに、動くことができない、動くことができない!!
要するに、動くことができない、動くことができない!!
要するに、動くことができない、動くことができない!!
インターネット上のそれらの束、.Move().SimpleMove()
ネットは何かを言う
誰がApiを呼び出すことができないか、問題はそれを動かすことができないということです、それをどのように解決するのですか?
2つのAPIの違いについて話さなければならない人もいます。ソースコードを見てみましょう。
わかった。。。見えない
/// <summary>
/// <para>Moves the character with speed.</para>
/// </summary>
/// <param name="speed"></param>
public bool SimpleMove(Vector3 speed) => CharacterController.INTERNAL_CALL_SimpleMove(this, ref speed);
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool INTERNAL_CALL_SimpleMove(CharacterController self, ref Vector3 speed);
/// <summary>
/// <para>A more complex move function taking absolute movement deltas.</para>
/// </summary>
/// <param name="motion"></param>
public CollisionFlags Move(Vector3 motion) => CharacterController.INTERNAL_CALL_Move(this, ref motion);
上記から明らかなように、(デルタ時間ではなく)速度でキャラクターを動かしますか?
SimpleMove()とMove()はどちらも内部内部メソッドAPIを使用しますが、simpleMove
いいえ
no delta吗
SimpleMoveがデルタなしでスムーズな動きをする方法がわかりません(上記のコメントによると)
あなたは.SimpleMove()を使うのが大好きですあなたはそれを自分で使います
しかし、問題はまだあります。CharacterController.Move()を使用すると移動できません。
テストの結果、問題は自分でカプセル化した関数、または自分で作成したBUGで発生していることがわかりました。
// HandleMovement();
}
private void LateUpdate()
{
HandleMovement();
//ce测试过,可以移动
//GetComponent<CharacterController>().Move(new Vector3(0.1f, 0, 0) * Time.deltaTime);
}
最後の解決策は、HandleMovement()を調整することです。これは、以前はMove()の下位コンポーネントであったはずであり、異常が発生して移動できなくなります。