2017-03-07 8 views
0

私はUnityに敵を持っています。敵はプレイヤーの後ろにあり、プレイヤーが特定の距離にいるとき、私は敵を止めることなくX単位で実行します。アイデアは、敵が走っていると、彼は疲れて、プレイヤーは彼を後ろから攻撃することができるということです。ユニティ敵の前方への移動

私は敵を止まらずにX距離前方に走らせることができますか?

+0

基本的に、敵の新しい位置を計算し、現在の位置と新しい位置の間でアニメートする必要があります。 –

答えて

1

私は敵を停止せずにX距離前方に走らせることができますか?

多くのことに依存して、ゲームでの動きはどのように処理されますか?それは2Dですか? 3D?など...

あなたは

Vector2 moveDirection = Vector2.zero; 
void Update(){ 
    CharacterController player = GetComponent<CharacterController>(); 
    if (player.isGrounded) 
    {    
    // constantly move horizontally 
    moveDirection.x = valuespeed; 
    player.Move(moveDirection * Time.deltaTime); 
    } 
} 

(2Dで)例えば、あなたの敵ゲームオブジェクトの文字のコントローラを使用する場合、これは単にいくつかの基本的な理論です。 3Dの場合は、次元を追加し、現在の順方向ベクトルなどを使用して方向を選択します。

あなたができることは、Enemyクラスでは、「実行モード」がトリガされたときに原点の位置を保存し、更新ではCurrentPositionとOriginの距離をチェックしますVector3.Distance(......))、距離がXより小さければ、彼を走らせることができます。そうでない場合、あなたは「ランニングモード」ではありません。

関連する問題