分享

Navmesh如何判断当前已经没有路

 勤奋不止 2023-09-26 发布于北京
using UnityEngine;
using UnityEngine.AI;

public class AIController : MonoBehaviour
{
    private NavMeshAgent agent;
    private Transform player;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        player = GameObject.FindGameObjectWithTag("Player").transform;
    }

    void Update()
    {
        // 检查是否可以到达玩家位置
        NavMeshPath path = new NavMeshPath();
        if (NavMesh.CalculatePath(transform.position, player.position, NavMesh.AllAreas, path))
        {
            // 如果路径的状态是Complete,表示可以到达
            if (path.status == NavMeshPathStatus.Complete)
            {
                agent.SetDestination(player.position);
            }
            else
            {
                // 无法到达,可以执行放弃追逐的逻辑
                // 例如:停止追逐、切换到巡逻状态等
            }
        }
    }
}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多