前回の記事でNavmeshAgentを使ってプレイヤーを追跡する敵を作りました。
今回は「プレイヤーが一定の距離まで近づいたら追跡をする」機能を付け足していきます。
NavMeshAgentを使うのにいろいろ準備が必要なので前回の記事を読んでいただくと使えるようになります。
前回の記事↓
追跡スクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine.AI;
using UnityEngine;
public class EnemyNavAI : MonoBehaviour
{
[SerializeField] Transform Target;
float ChaseRange = 5;
float distanceTotarget = Mathf.Infinity;
NavMeshAgent Nav;
void Start()
{
Nav = GetComponent<NavMeshAgent>();
}
void Update()
{
distanceTotarget = Vector3.Distance(Target.position, transform.position);
if (distanceTotarget <= ChaseRange)
{
Chase();
}
}
void Chase()
{
Nav.SetDestination(Target.transform.position);
}
}
このスクリプトを敵にアタッチしましょう。
Targetという項目がありますのでそこに追跡対象を入れましょう。

これで実行してみましょう。

こんな感じで、一定の距離まで近づくと追跡し、離れると止まるようになります!
コメント