ユニティ人々が移動するために、いくつかの方法があります

方法の一つ:transform.Translate

あなたがチャートを見ることができます理解していない場合は、Z軸がある前方Vector3.forwardある方向を知って最初に再訪する前に

ここに画像を挿入説明

世界には、システムの移動座標

コードは、世界の軸をZ軸移動方向に応じて書き込まれ、その後、世界の軸のZ軸移動に応じて世界が右上軸に見出されるものを見ることは問題ではない、問題は、このオブジェクトを観察であるれているそのものでありますz軸は、この方法の効果は、二番目のパラメータであるので、左側に座標軸であり、Space.World、Space.Self自体は移動の方向に応じて移動させる世界に応じて座標軸
	// Update is called once per frame
	void Update () {
        transform.Translate(Vector3.forward * Time.deltaTime * 10f, Space.World);
    }

ここに画像を挿入説明

自分の携帯ケース

次の行のコメント行は前の行に相当し、この方法は、デフォルトの列挙は、ここでの書き込みがSpace.selfが同じで書かないと言うことです彼らの変位座標系に従って行われました。

	// Update is called once per frame
	void Update () {
        transform.Translate(Vector3.forward * Time.deltaTime * 10f,Space.Self); //1
        //transform.Translate(Vector3.forward * Time.deltaTime * 10f); //2
    }

結果を見てください:
ここに画像を挿入説明

方法2:CharacterController.Move(ベクトルDIR)

CharacterController.Moveは、この方法は、その世界座標を表すために(前方)Vector.XXXで、それらの座標を表すために、通常はtransform.XXX(前方)があり、システムや自分自身の座標系を座標私たちは、明示的に世界で列挙教えてくれません。

下図のように:

世界軸に移動します。

ここに画像を挿入説明
コードは以下の通りであります:

	// Update is called once per frame
	void Update () {
        chars.Move(Vector3.forward * Time.deltaTime * 10f);
    }

自身の軸に従って移動します。

ここに画像を挿入説明
コードは以下の通りであります:

	// Update is called once per frame
	void Update () {
        chars.Move(transform.forward * Time.deltaTime * 10f);
    }

方法3:注意しCharacterController.SimpleMove(ベクトルDIR)

この方法は、移動することができる基盤のいくつかの種類に移動する必要があるので、なぜ私は慎重にこれを言うん
そして、どんな役割を果たしていないではない場合、それを地上移動物体を作る1.まず必要
2.この方法を使用するときに使用しない場合は、剛体のない自由落下効果がない剛性自由落下効果で、剛体に構築されています
3.この方法は、私は上記の今スピードメカニズムに二つの方法であることは同じではありません、* Time.delatetimeを使用する必要はありません

以下の図の影響:

世界軸に移動します。

ここに画像を挿入説明

コードは以下の通りであります:

	void Update () {
        chars.SimpleMove(Vector3.forward);
    }

自身の軸に従って移動します。

ここに画像を挿入説明

コードは以下の通りであります:

	void Update () {
        chars.SimpleMove(transform.forward);
    }
公開された62元の記事 ウォンの賞賛5 ビュー3899

おすすめ

転載: blog.csdn.net/qq_42194657/article/details/103908957