私はUnityに敵を持っています。敵はプレイヤーの後ろにあり、プレイヤーが特定の距離にいるとき、私は敵を止めることなくX単位で実行します。アイデアは、敵が走っていると、彼は疲れて、プレイヤーは彼を後ろから攻撃することができるということです。ユニティ敵の前方への移動
私は敵を止まらずにX距離前方に走らせることができますか?
私はUnityに敵を持っています。敵はプレイヤーの後ろにあり、プレイヤーが特定の距離にいるとき、私は敵を止めることなくX単位で実行します。アイデアは、敵が走っていると、彼は疲れて、プレイヤーは彼を後ろから攻撃することができるということです。ユニティ敵の前方への移動
私は敵を止まらずにX距離前方に走らせることができますか?
私は敵を停止せずに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より小さければ、彼を走らせることができます。そうでない場合、あなたは「ランニングモード」ではありません。
基本的に、敵の新しい位置を計算し、現在の位置と新しい位置の間でアニメートする必要があります。 –