返回

Unity实用功能之实用Navigation(自动寻路系统)制作简易AI巡逻

前端

前言

AI巡逻功能一般在游戏开发中使用的比较多,最近做了一个打僵尸的项目,僵尸生成后要在城市中随机游走,接下来就一起来看一下。

准备工作

在开始之前,我们需要先确保已经安装了Unity并导入Navigation包。

  1. 打开Unity,点击菜单栏中的“Window”->“Package Manager”。
  2. 在Package Manager窗口中,点击“+”按钮,然后选择“Add package from git URL”。
  3. 在弹出的窗口中,输入以下URL:
https://github.com/Unity-Technologies/navigation.git
  1. 点击“Add”按钮,等待Unity下载并安装Navigation包。

创建场景

接下来,我们需要创建一个新的场景来放置我们的AI巡逻系统。

  1. 点击菜单栏中的“File”->“New Scene”。
  2. 在弹出的窗口中,选择“3D”模板,然后点击“Create”按钮。

添加Navigation系统

现在,我们需要将Navigation系统添加到场景中。

  1. 点击菜单栏中的“GameObject”->“Navigation”->“Bake”。
  2. 在弹出的窗口中,点击“Bake”按钮。

创建巡逻点

接下来,我们需要在场景中创建一些巡逻点。巡逻点是AI巡逻的目的地。

  1. 在场景中创建一个空的GameObject,并命名为“PatrolPoints”。
  2. 在“PatrolPoints”对象下,创建多个子GameObject,并命名为“PatrolPoint1”、“PatrolPoint2”等。
  3. 将这些巡逻点放置在场景中的不同位置。

创建AI角色

接下来,我们需要创建一个AI角色。

  1. 在场景中创建一个新的GameObject,并命名为“AI”。
  2. 在“AI”对象上,添加一个“Animator”组件和一个“Nav Mesh Agent”组件。
  3. 将“AI”对象的“Animator”组件的“Controller”属性设置为“ZombieController”。
  4. 将“AI”对象的“Nav Mesh Agent”组件的“Destination”属性设置为“PatrolPoint1”。

编写AI巡逻脚本

接下来,我们需要编写一个AI巡逻脚本。

  1. 在“AI”对象上,添加一个新的脚本,并命名为“AIPatrol”。
  2. 在“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巡逻系统。

  1. 点击菜单栏中的“Play”按钮。
  2. 观察AI角色是否能够按照我们设置的巡逻点进行巡逻。

总结

以上就是如何使用Unity的Navigation系统来制作一个简易的AI巡逻系统。通过使用Navigation系统,我们可以轻松地让AI在场景中移动,并自动避开障碍物。希望本文能够对您有所帮助。