返回
Unity实用功能之实用Navigation(自动寻路系统)制作简易AI巡逻
前端
2024-02-20 07:12:50
前言
AI巡逻功能一般在游戏开发中使用的比较多,最近做了一个打僵尸的项目,僵尸生成后要在城市中随机游走,接下来就一起来看一下。
准备工作
在开始之前,我们需要先确保已经安装了Unity并导入Navigation包。
- 打开Unity,点击菜单栏中的“Window”->“Package Manager”。
- 在Package Manager窗口中,点击“+”按钮,然后选择“Add package from git URL”。
- 在弹出的窗口中,输入以下URL:
https://github.com/Unity-Technologies/navigation.git
- 点击“Add”按钮,等待Unity下载并安装Navigation包。
创建场景
接下来,我们需要创建一个新的场景来放置我们的AI巡逻系统。
- 点击菜单栏中的“File”->“New Scene”。
- 在弹出的窗口中,选择“3D”模板,然后点击“Create”按钮。
添加Navigation系统
现在,我们需要将Navigation系统添加到场景中。
- 点击菜单栏中的“GameObject”->“Navigation”->“Bake”。
- 在弹出的窗口中,点击“Bake”按钮。
创建巡逻点
接下来,我们需要在场景中创建一些巡逻点。巡逻点是AI巡逻的目的地。
- 在场景中创建一个空的GameObject,并命名为“PatrolPoints”。
- 在“PatrolPoints”对象下,创建多个子GameObject,并命名为“PatrolPoint1”、“PatrolPoint2”等。
- 将这些巡逻点放置在场景中的不同位置。
创建AI角色
接下来,我们需要创建一个AI角色。
- 在场景中创建一个新的GameObject,并命名为“AI”。
- 在“AI”对象上,添加一个“Animator”组件和一个“Nav Mesh Agent”组件。
- 将“AI”对象的“Animator”组件的“Controller”属性设置为“ZombieController”。
- 将“AI”对象的“Nav Mesh Agent”组件的“Destination”属性设置为“PatrolPoint1”。
编写AI巡逻脚本
接下来,我们需要编写一个AI巡逻脚本。
- 在“AI”对象上,添加一个新的脚本,并命名为“AIPatrol”。
- 在“AIPatrol”脚本中,添加以下代码:
using UnityEngine;
using UnityEngine.AI;
public class AIPatrol : MonoBehaviour
{
private NavMeshAgent agent;
private Transform[] patrolPoints;
private int currentPatrolPointIndex;
void Start()
{
agent = GetComponent<NavMeshAgent>();
patrolPoints = GetComponentsInChildren<Transform>();
}
void Update()
{
if (agent.remainingDistance < 0.5f)
{
currentPatrolPointIndex = (currentPatrolPointIndex + 1) % patrolPoints.Length;
agent.destination = patrolPoints[currentPatrolPointIndex].position;
}
}
}
测试
现在,我们可以测试一下我们的AI巡逻系统。
- 点击菜单栏中的“Play”按钮。
- 观察AI角色是否能够按照我们设置的巡逻点进行巡逻。
总结
以上就是如何使用Unity的Navigation系统来制作一个简易的AI巡逻系统。通过使用Navigation系统,我们可以轻松地让AI在场景中移动,并自动避开障碍物。希望本文能够对您有所帮助。