Unity 基于群体寻路的解决方案

2023-11-03

群体寻路是一种模拟群体行为的技术,它使得游戏中的角色能够以一种有组织的方式移动。在群体中,每个角色都有自己的目标位置,并且会根据周围的情况决定如何移动。群体寻路可以帮助我们实现一些有趣的场景,比如鸟群飞行、鱼群游动等。

对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

在Unity中实现群体寻路,我们可以使用NavMeshAgent组件。NavMeshAgent是Unity中用于寻路的组件,它可以自动计算角色的移动路径,并控制角色的移动。要使用NavMeshAgent组件,我们需要先创建一个NavMesh,然后将其应用到场景中的地面上。

首先,我们需要创建一个空对象,并将其命名为"NavMesh"。然后,我们需要在场景中创建一个地面,用于角色的移动。在地面上右键点击,选择"Navigation",然后点击"Create NavMesh"。这将为地面生成一个NavMesh,用于寻路。

接下来,我们需要给角色添加NavMeshAgent组件。在场景中选择一个角色,然后点击"Add Component",选择"Navigation",然后点击"NavMeshAgent"。这将在角色上添加一个NavMeshAgent组件。

现在,我们可以通过代码来控制角色的移动。首先,我们需要在代码中获取NavMeshAgent组件的引用。我们可以使用GetComponent方法来获取NavMeshAgent组件的引用,如下所示:

NavMeshAgent agent = GetComponent<NavMeshAgent>();

接下来,我们可以使用SetDestination方法来设置角色的目标位置。例如,我们可以将角色的目标位置设置为鼠标点击的位置,如下所示:

if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;

if (Physics.Raycast(ray, out hit))
{
    agent.SetDestination(hit.point);
}

}

以上代码将在鼠标左键点击时获取鼠标点击的位置,并将其设置为角色的目标位置。

除了设置目标位置,我们还可以设置角色的移动速度和转向速度。我们可以使用agent.speed属性来设置移动速度,使用agent.angularSpeed属性来设置转向速度。例如,我们可以将移动速度设置为5,转向速度设置为120,如下所示:

agent.speed = 5;
agent.angularSpeed = 120;

现在,我们已经完成了基于群体寻路的解决方案的代码实现。当我们运行游戏时,我们可以看到角色根据鼠标点击的位置智能地移动,避免碰撞和相互干扰。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity 基于群体寻路的解决方案 的相关文章

  • Unity中级客户端开发工程师的进阶之路

    上期UWA技能成长系统之 Unity高级客户端开发工程师的进阶之路 得到了很多Unity开发者的肯定 通过系统的学习 可以掌握游戏性能瓶颈定位的方法和常见的CPU GPU 内存相关的性能优化方法 UWA技能成长系统是UWA根据学员的职业发展
  • Unity-AR 简介

    Unity AR 简介 现有Unity AR Sdk ARKit 苹果推出的AR开发平台 ARCore Google 推出的增强现实 SDK ARFoundation ARFoundation是ARKit XR插件和ARCore XR插件
  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity学习笔记(一)—— 基础知识

    一 基础知识 1 开发团队组成 2 unity特点 图形界面 所见即所得 入门简单 支持C 比OC C 更友好 js 国内外资源丰富 因为使用的人多 跨平台性好 PC端 移动端等 对VR AR的支持最完善 3 成功案例 游戏 炉石传说 神庙
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • 【IMGUI】 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility

    EditorGUIUtility class in Editor 继承自 GUIUtility EditorGUI 的各种辅助程序 EditorGUIUtility currentViewWidth 我尝试打印了下这个值和position
  • Unity打开工程时卡住的问题

    自从Unity升级了一个版本后 Unity打开工程卡住的问题越来越严重了 具体表现为 选择工程后 Unity窗口消失 但进程还在 有时候等个几分钟能出来 有时候等10分钟都不见得能出来 直观感受上看 似乎是Unity加载工程的时候某一步卡了
  • 【Unity】按Esc进入操作菜单

    本文章是基于如下视频的自我总结 https www youtube com watch v JivuXdrIHK0 步骤如下 1 在Canvas 界面添加一个Panel Panel中添加一个按钮 调整按钮的大小为合适大小 调整字体的大小为合
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • Unity旋转以及万向锁问题

    我之前研读了一些关于unity旋转相关的博客 一直想抽个时间写个总结 但是由于实习太忙一直没有写 趁着今天请了假晚上有时间把这段时间一些学习心得写出来 Unity inspector面板中的Rotation 在unity中 想必大家最先接触
  • unity3d切换场景Application.LoadLevel(1)含义

    Application LoadLevel 1 场景ID
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • unity3d image组件不显示

    需要将UI组件放到画布下面
  • mixamo根动画导入UE5问题:滑铲

    最近想做一个跑酷游戏 从mixamo下载滑铲动作后 出了很多动画的问题 花了两周时间 终于是把所有的问题基本上都解决了 常见问题 1 动画序列 人物不移动 2 动画序列 人物移动朝向错误 3 蒙太奇 人物移动后会被拉回 4 蒙太奇 动画移动
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste
  • 游戏开发中常见系统梳理之背包系统的实现一

    游戏中几乎都存在大大小小的背包系统 接下来我将讲述背包系统具体是如何实现的 完整源码 以下是使用unity NGUI实现 使用txt配置的方法 后续更新UGUI Json实现的背包系统敬请期待 背包中的物品我们常常将其制作成预设体 通过改变

随机推荐

  • TVM设备添加以及代码生成

    因为要添加的设备是一种类似于GPU的加速卡 TVM中提供了对GPU编译器的各种支持 有openCl OpenGL和CUDA等 这里我们选取比较熟悉的CUDA进行模仿生成 从总体上来看 TVM是一个多层的结构 从上一个文档 TVM调试 中 基
  • ADC0809的使用

    一 前言介绍 使用ADC0809对一个模拟电压进行转换 转换后的电压使用数码管显示出来 二 ADC0809的介绍 1 ADC0809简介 ADC0809是采用COMS工艺制造的双列直插式单片8位A D转换器 分辨率8位 精度7位 带8个模拟
  • Ubuntu 20网络和DNS设置

    问题 Ubuntu 20 DNS 被自动覆盖成127 0 0 53 在界面环境下设置的静态IP地址 然后可以ping通IP 但是无法访问网页 初步判断是DNS问题 查看sudo cat etc resolv conf内容发现是127 0 0
  • github上好的网站

    https github com Trinea android open project
  • vue搭建后台管理页面(点击左侧导航,切换右侧内容)

    home vue页面
  • 不打无准备之战,Python100道经典题目,参考学习(附答案)

    近年来 Python在编程语言界里赚足了风头 无论是受欢迎程度 还是薪资待遇 都非常可观 相应的 Python岗位要求也越来越高 无论你是零基础还是老前辈 在Python面试中都不能轻视 不打无准备之战 在平时我们就需要多积累 今天就给大家
  • 统计学习第二弹--描述性统计(理论公式)

    思维导图 目录结构 集中趋势 众数 一组数据中出现频数最多的数值 常用用Mo表示 求众数 def Max number nums res for num in nums res setdefault num 0 res num 1 res
  • 用IO流实现用户的相关设置

    文章目录 用IO流实现用户的相关设置 一 目录 二 实例代码 2 1userDao 2 2UserServlet 三 演示代码 用IO流实现用户的相关设置 一 目录 二 实例代码 2 1userDao 建立一个Dao的包 在创建一个user
  • 零基础的Java小白如何准备初级开发的面试

    对于各位Java程序员来说 只要能有实践的机会 哪怕工资再低 公司情况再一般 只要自己上心努力 就可能在短时间内快速提升 甚至在工作2年后进大厂都有希望 因为项目里真实的开发实践环境是平时学习不能模拟的 所以很多想从事Java开发的同学其实
  • VirtualBox 无法使用usb2.0及3.0问题

    环境为ubuntu下安装的VirtualBox 虚拟机是win7 1 VirtualBox共享usb需要先添加用户组 查看用户组状态命令 cat etc group vboxusers 127 user usbfs 1001 user us
  • win10 + CUDA10.0 + cuDNN7.6.5 + Pytorch 安装教程

    CUDA10 0 cuDNN 7 6 5 安装可自行百度 教程很多 conda create name pytracking python 3 7 conda activate pytracking conda install pytorc
  • 【源码+文档】基于scrapy-redis的分布式网络爬虫

    第1章 引言 分布式是大数据时代流行的一个词 比如常见的分布式计算 分布式存储 分布式爬虫等等 分布式爬虫 从字面的意义上来说是集群爬虫 就是将爬虫任务分配给多台机器同时进行处理 与之对应的是单机爬虫 单点部署 单点操作 分布式爬虫相当于将
  • 大语言模型能否替换传统多轮任务型问答系统?

    语言模型能否替换传统多轮任务型问答系统 以下文章来源于无数据不智能 作者森本悟 概述 本论文 Are LLMs All You Need for Task Oriented Dialogue 的研究背景是 大型语言模型 LLMs 由于其对话
  • 快递、外卖、网购自动定位及模糊检索收/发件地址功能实现

    概述 目前快递 外卖 团购 网购等行业 为了简化用户在收发件地址填写时的体验感 使用辅助定位及模糊地址检索来丰富用户的体验 本次demo分享给大家 让大家理解辅助定位及模糊地址检索的功能实现过程 以及开发出自己理想的作品 详细 概述 后台基
  • NVIDIA TX2上ROS安装

    TX2上的ROS自动安装git上有现成的 记录如下 首先 下载git上的自动安装脚本 gt git clone https github com jetsonhacks installROSTX2 git 其次 安装全量ros版本 inst
  • 6.算法通关面试 --- 广度优先and深度优先搜索

    1 广度优先搜索 深度优先搜索
  • MATLAB数字图像处理系统——边缘检测

    实验4 1 边缘检测 Sobel Prewitt Log边缘算子 一 实验目的 1 熟悉matlab图像处理工具箱及图像边缘检测函数的使用 2 理解和掌握图像边缘检测 Sobel Prewitt Log边缘算子 的方法和应用 二 实验设备
  • ASTGCN

    sample week sample day sample hour sample target time sample sample append hour sample 1 vertices features sequences tim
  • 取消DruidDataSource连接失败自动重试

    背景 最近在业务开发的时候 遇到了一个场景 需要遍历数据库连接信息创建数据库连接 而原来我配置的DruidDataSource在创建数据库连接失败后会自动重试 且是无限重试 而我期望的逻辑是 但创建数据库连接失败后 尝试几次依然失败就跳过该
  • Unity 基于群体寻路的解决方案

    群体寻路是一种模拟群体行为的技术 它使得游戏中的角色能够以一种有组织的方式移动 在群体中 每个角色都有自己的目标位置 并且会根据周围的情况决定如何移动 群体寻路可以帮助我们实现一些有趣的场景 比如鸟群飞行 鱼群游动等 对啦 这里有个游戏开发