当前位置: 首页 > news >正文

什么叫网站索引东莞建站网站

什么叫网站索引,东莞建站网站,上海做无创DNA医院网站,免费购物网站目录 1 寻路和导航对移动的不同 1.1 基础的移动功能 1.1.1 基础移动 1.1.2 智能导航寻路 1.1.3 智能导航寻路还可以 2 如何实现这个效果? 2.1 通过地图网格的形式 2.1.1 警告信息 the static value has been deprecated的对应搜索 2.1.2 新的navigation ba…

目录

1 寻路和导航对移动的不同

1.1 基础的移动功能

1.1.1 基础移动

1.1.2 智能导航寻路

1.1.3 智能导航寻路还可以

2 如何实现这个效果?

2.1 通过地图网格的形式

2.1.1 警告信息 the static value has been deprecated的对应搜索

2.1.2 新的navigation bake功能

2.1.3 bake按钮的位置

2.2 总结 unity2022后版本如何实现Navmesh 的地图 bake烘焙

2.2.1 unity 2022之前

2.2.1 unity 2022之后

2.3 如果遇到 window / 下面没有AI菜单的情况,解决办法

3 地图测试导航寻路准备

3.1 做一些障碍物 和 楼梯等

4 生成地图网格

4.1 地图上1个物体添加新的component : nav mesh surface

4.2 navigation  Agent设置

4.3 可以设置 多种不同体型的 agent 数据

4.4 navigation  Agent的详细设置

5 题外话:总结关于一个gameObject在游戏里有多个形象

6 用脚本实现移动时导航效果

6.1 具体内容

6.1.1 获得点击位置

6.1.2实现导航移动

6.2 脚本内容

6.3 报错处理

6.4 测试效果 OK


1 寻路和导航对移动的不同

1.1 基础的移动功能

实测有很多差别

1.1.1 基础移动

  • 基础的移动可以朝向点选的地方移动
  • 比如可以跳下去等等

1.1.2 智能导航寻路

  • 但是导航可以让角色移动的同时,避开障碍物,也就是 智能移动/寻路
  • 而且 NaviMesh 上显示非蓝色的区域,角色移动时根本不会往哪走

1.1.3 智能导航寻路还可以

  • 判断路径,哪些地方是否可通过
  • 可以绕着障碍物走
  • 可以实现路径的不同区域的过路成本

2 如何实现这个效果?

2.1 通过地图网格的形式

  • unity 2023版本以前,点击右上角的 navigation static 可以
  • unity 2023版本以后,这个功能已经被弃用, the static value has been deprecated

2.1.1 警告信息 the static value has been deprecated的对应搜索

  • the static value has been deprecated

这个警告信息是Unity中的一个已弃用的警告信息,它意味着你正在使用已经弃用的功能。这个信息是由于 Unity 2023 已经不再使用(Deprecated) GameObjectUtility.FindOrCreateNavMeshSurface API来处理生成Navmesh。这个警告信息只是告诉你正在使用过时的 API,但不影响你使用 Navigation 功能。

如果你想使用Navigation功能但是不想看到这个报错信息,你可以通过在代码中使用新的API来解决这个问题,具体步骤如下:

1.首先,打开“Window > AI > Navigation”面板,并创建一个新的 NavMesh Surface 组件。

2.然后,将该组件添加到场景中的一个GameObject对象上。

3.在代码中,使用以下代码片段,获取对 NavMeshSurface 组件的引用:

NavMeshSurface navMeshSurface = GetComponent<NavMeshSurface>();

4.使用该组件的新 API,即:

navMeshSurface.BuildNavMesh();

这样就可以解决该警告信息,并正确地使用 Navigation 功能。

需要注意的是,由于该API已经弃用了,因此无法保证该解决方案在未来版本的 Unity 中是否会继续有效。因此,如果你想保持你的代码是最新的,建议使用最新的文档和API。

2.1.2 新的navigation bake功能

在Unity 2022版本中,导航系统的Bake按钮位置发生了变化,不再直接显示在菜单中,而是通过添加组件的形式进行烘焙。

在Unity 2022版本中,导航系统的Bake按钮位置发生了变化。原来的Bake按钮被替换为在组件上进行烘焙。具体操作如下:

  1. 选择场景中的静态物体‌:首先,确定场景中的静态物体(在整个游戏运行过程中不会发生Transform变化的物体),并将其设置为静态物体(勾选static前面的复选框)。
  2. 添加NavMeshAgent组件‌:给需要导航移动的物体添加Navmesh Agent组件。
  3. 组件上烘焙‌:在组件上通过添加NavMesh组件来实现烘焙功能。具体步骤如下:
    • 打开Unity编辑器,进入Window菜单,选择AI -> Navigation。
    • 在Navigation界面中,选择Agent Type并设置相关参数。
    • 添加NavMesh组件到需要烘焙的物体上,通过组件参数进行烘焙设置‌12。

通过以上步骤,可以在Unity 2022版本中实现导航系统的烘焙功能,而无需直接使用Bake按钮。这种变化旨在提高工作效率并简化导航系统的使用‌13。

新版本的导航系统中没有"Bake"按钮,这是因为Unity在2022.1版本中对导航系统进行了改进。在新版本中,导航系统的烘焙过程是自动进行的,无需手动触发。当您对场景进行更改或添加导航代理时,Unity会自动检测并更新导航数据。因此,您无需手动进行烘焙操作,导航系统会自动处理。这样可以提高工作效率并简化导航系统的使用。如果您在使用新版本的Unity时遇到了导航相关的问题,请提供更多详细信息,以便我们能够更好地帮助您解决问题。

2.1.3 bake按钮的位置

2.2 总结 unity2022后版本如何实现Navmesh 的地图 bake烘焙

2.2.1 unity 2022之前

  • 选择要烘焙的gameObject 右上角 静态static,然后 Navigation static
  • 然后,在windows下打开AI,打开Navigation , 里面有 Navigation agent 和 bake按钮

2.2.1 unity 2022之后

  • 玩家角色身上,添加 NavMeshAgent 的component
  • 游戏场景里只需要1个物体,比如我这的wall,选择一个NavMeshSurface.包含bake按钮,也在这儿
  • 在windows下打开AI,打开Navigation ,里面只有 Navigation agent 、
  • 按前面的bake按钮

2.3 如果遇到 window / 下面没有AI菜单的情况,解决办法

  • 如果遇到 window / 下面没有AI菜单的情况, 是安装unity时没安装这个功能包。我就遇到了这个问题
  • 需要先打开 package manager ,然后,在unity的包下搜索 navigation
  • 然后安装下就有了

3 地图测试导航寻路准备

3.1 做一些障碍物 和 楼梯等

  • 让地图有些区域不能直接通过,比如加墙阻隔
  • 需要通过楼梯,斜坡才能通过

4 生成地图网格

4.1 地图上1个物体添加新的component : nav mesh surface

  • 错误:每个需要参与寻路的 gameObject 都增加一个新component : nav mesh agent
  • 正确,只需要在场景内的一个gameObject 新建增加一个新component : nav mesh surface即可。 实测不需要每个物体上都添加
  • 然后有bake按钮,点击,全部进行了bake

4.2 navigation  Agent设置

  • 其中 agents 就是指 寻路的主体,依据这个做的寻路是否可以通过
  • 也就是说,寻路导航,是为主角player (大小,身高)量身定做的。而其他单位,比如怪物,NPC等不会受到这些寻路的影响。

4.3 可以设置 多种不同体型的 agent 数据

  • 多种不同体型的 agent 数据,相当于多个模板
  • 具体的不同的游戏内角色,可以选择属于哪个模板agent

然后不同的导航物体,可以选择属于哪一类

4.4 navigation  Agent的详细设置

angent的形状,是一个圆柱形的,和 unity编辑器里的一样

而不是看起来的形状

5 题外话:总结关于一个gameObject在游戏里有多个形象

同样1个gameObject

  • mesh render 决定的外观看起来什么样,比如外观的形状
  • collider决定的碰撞时,此物体的样子,比如也也时胶囊
  • angent的形状 决定navigation 寻路导航的这个物体的样子,比如圆柱形

6 用脚本实现移动时导航效果

6.1 具体内容

6.1.1 获得点击位置

  • 点击目标点,获得点击点,仍然使用之前的,摄像机射线 ray

            Ray ray1=Camera.main.ScreenPointToRay(Input.mousePosition);

            RaycastHit hit;

            if(Physics.Raycast(ray1,out hit))

            {

                //点击位置

                Vector3 point1=hit.point;

6.1.2实现导航移动

  • //获取导航代理人
  • agent1=GetComponent<NavMeshAgent>();
  • agent1.SetDestination(point1);

6.2 脚本内容

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;public class TestNavMeshAgent : MonoBehaviour
{private NavMeshAgent agent1;// Start is called before the first frame updatevoid Start(){//获取导航代理人agent1=GetComponent<NavMeshAgent>();}// Update is called once per framevoid Update(){//如果点击鼠标左键 if (Input.GetMouseButtonDown(0)){Ray ray1=Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if(Physics.Raycast(ray1,out hit)){//点击位置Vector3 point1=hit.point;//agent1.SetDestination(point1);}}}
}

6.3 报错处理

  • 测试时,遇到这个,我没更新,点了X

6.4 测试效果 OK

  • 可以实现智能寻路效果
  • 和按键移动的差别,按键移动可以从墙上跳下到对面去
  • 但是点击移动,摄像机射线这种方法,角色在墙上也无法移动到对面

http://www.yayakq.cn/news/623746/

相关文章:

  • 贵阳网站建设方案报价滁州市建设工程质量检测协会网站
  • 为企业做网站赚钱吗青岛建设工程信息网
  • 网站建设研究意义wordpress页面侧边栏
  • 做啤酒最全的网站rails 网站开发
  • 社保网站人员减少怎么做跨境电商排名前十名品牌
  • 媒体网站的品牌建设德州建设公司网站
  • 网站后台如何上传ico图标企业网站改版项目描述
  • 网站视频背景怎么做深圳高端集团网站建设公司
  • 个人做淘宝客网站要备案吗WordPress如何调用
  • 网站tag聚合怎么做长沙房地产价格
  • 自已建个人网站制作好的网站必须申请
  • 昆明网站开发js网站下拉置顶代码
  • 萧江做网站域名备案期间网站
  • 做游戏网站思想步骤网站优化策划方案
  • 绵竹网站建设网站前台的功能模块
  • 网站域名代备案wordpress 安全性
  • 自己网站做电子签章有效么食品建设网站
  • 做微信公众号必备的网站支持wordpress免费下载
  • seo 网站结构调整百度做网站推广
  • 网站建设的优点与不足新版wordpress如何添加标签
  • 怎么检查外包做的网站网站管理规章制度
  • 柳州网站制作服务商陕西省高速建设集团网站
  • php教育网站开发工作怎么直接更新wordpress
  • 专业推广企业网站公司织梦多个网站
  • 网站设计软件下载沧州关键词排名按天收费
  • 360网站收录提交入口大全子域名大全
  • 电商网站建设与运营方向就业前景杭州网络安全公司
  • 岳阳网站建设免费咨询最专业的佛山网站建设
  • 北京专业建设网站公司哪家好中装建设是做什么的
  • 动漫网站设计与实现wordpress页面打开404