unity 3D AI自动寻路

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44238513/article/details/88354572

NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。。导航时,只需要给导航物体挂载导航组建,导航物体便会自行根据目标点来寻找最直接的路线,并沿着该线路到达目标点。

建造一个简单的场景

在这里插入图片描述

选中两个球之外所有的物体,然后在Inspector——Static——Navigation Static

在这里插入图片描述

选中要寻路的物体添加在导航栏选中Component——Navigation——Nav Mesh Agent组件

在这里插入图片描述

在导航栏打开Window——Navigation窗口

在这里插入图片描述

在Navigation窗口里面选择Bake然后再选择右下角的Bake

在这里插入图片描述

上面所有的设置好后上代码,把这个代码组件放到寻路的物体上

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

public class AI : MonoBehaviour {

    public GameObject target;
    private NavMeshAgent navMeshAgent;

	void Start ()
    {
        navMeshAgent = GetComponent<NavMeshAgent>();
        if(navMeshAgent==null)
        {
            navMeshAgent = gameObject.AddComponent<NavMeshAgent>();
        }
	}
	

	void Update ()
    {
            navMeshAgent.SetDestination(target.transform.position);
	}
}

然后把目标拖到代码组件的Target里面

在这里插入图片描述

运行就OK了

猜你喜欢

转载自blog.csdn.net/qq_44238513/article/details/88354572
今日推荐