敵がプレイヤーの方を向き、向かってくるようにして行きます。
最終的には動画のようになります。動画では白いオブジェクト(プレイヤー)に向かって赤いオブジェクト(敵)が接近してきています。
解説用に動画の白いオブジェクトをキーの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です。
コメントを残す