[Unity]敵が追いかけてくるようにする&敵がこちらを向くようにする方法

敵がプレイヤーの方を向き、向かってくるようにして行きます。

最終的には動画のようになります。動画では白いオブジェクト(プレイヤー)に向かって赤いオブジェクト(敵)が接近してきています。


解説用に動画の白いオブジェクトをキーのW、A、S、Dで上下左右に動けるようにしてあります。

敵がこのオブジェクトを追いかけるようにしていきます。

新しく赤色のオブジェクトを作り、名前を「enemy」とします。

スクリプト「enemy」を作り、以下のコードをコピー&ペーストします。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class enemy : MonoBehaviour
{
    //GameObject型を変数targetで宣言します。
    public GameObject target;

    // Start is called before the first frame update
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {
        Quaternion lookRotation = Quaternion.LookRotation(target.transform.position - transform.position, Vector3.up);

        lookRotation.z = 0;
        lookRotation.x = 0;

        transform.rotation = Quaternion.Lerp(transform.rotation, lookRotation, 0.1f);

        Vector3 p = new Vector3(0f, 0f, 0.05f);

        transform.Translate(p);
    }
}

スクリプト説明

簡単にスクリプトの説明をします。

8行目ではターゲットを読み込んでいます。

19行目から24行目にはプレイヤーの方向を向くコードが書いてあります。

26行目と28行目には前進するコードが書いてあり、「0.05f」の数値を変えることで移動速度を調整できます。数値をマイナスにすれば逆にプレイヤーから離れていく動きをさせることもできます。


 コードが出来たらenemyにコードを貼り付けます。必要な場合はenemyに「Rigidbody」も付けてください。

スクリプトを貼り付けたらターゲットという項目があるのでプレイヤーをそこに入れてください。

これで完成です。動画のように向きを変えて近づいてきたらOKです。

TOPに戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です