【Unity】AI-Navigation导航系统生成导航网络

这篇具有很好参考价值的文章主要介绍了【Unity】AI-Navigation导航系统生成导航网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导航网格的生成

  1. 在Unity资源包中添加 AI Navigation 插件,并 Install 。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  2. 找到 AN 标志,勾选 Show Only Selected(可有可无,只是为了更好地看出来网格在哪)。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  3. 在project面板里面创建 AI->NavMesh Surface 文件。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  4. 双击新建的文件,点击 Back 烘焙网格。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  5. 勾选 Show NavMesh 显示效果,识别为是否是障碍物的依据,就是观察其身体上面是否有 Collider 组件,如果有便是障碍物存在。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  6. 移除某个物体为障碍物(障碍物为没有蓝色覆盖的位置)在此物体上面添加 NavMeshModifier 组件,将 Mode 修改为 Remove object。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  7. 点击 NavMesh Surface 文件,点击 Back 重新烘焙。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  8. 添加某个物品为障碍物,方法一:在其下方右键 AI->NavMesh Modifier Volume 。设置一块区域设置为障碍物的区域。

【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  1. 点击新建的 NavMesh Modifier Volume 文件,将 AreaType 改为 Not Walkable 状态。(注:每一步都要重新进行烘焙才能显示效果)(适合设置大片区域 )
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  2. 方法二:或是在身上添加组件 NavMesh Obstacle 组件。(适合设置单个物体)
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  3. 方法三:或是在想设为障碍物的身上添加组件 NavMesh Modifier 组件并将Mode修改为Remove object。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity

  4. 对于房子这种装饰物,还可以通过勾选 Override Area,并将 Area Type 改为 Not Walkable 状态。
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity文章来源地址https://www.toymoban.com/news/detail-859588.html

通过NavMesh控制主角移动。

  1. 在主角身上添加一个 NavMesh Agent 组件
    【Unity】AI-Navigation导航系统生成导航网络,c#,unity
  2. 添加脚本控制主角移动。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.EventSystems;


/// <summary>
/// 鼠标点击某位置移动
/// </summary>

public class PlayerMove : MonoBehaviour
{
    private NavMeshAgent playerAgent;
    
    void Start()
    {
        playerAgent=GetComponent<NavMeshAgent>();
    }

    
    void Update()
    {
        if(Input.GetMouseButtonDown(0)&&EventSystem.current.IsPointerOverGameObject()==false)//检测鼠标的点击
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//获取鼠标的位置,并在此位置上发射一条射线。

            RaycastHit hit;
            bool isCollide = Physics.Raycast(ray, out hit);//记录射线检测的位置和信息,并检测是否碰撞到
            if (isCollide)
            {

                if (hit.collider.tag == "Ground")
                {
                    playerAgent.stoppingDistance = 0;
                    playerAgent.SetDestination(hit.point);//获取碰撞的点
                }
                else if(hit.collider.tag =="Interactable")
                {
                    hit.collider.GetComponent<InteractableObject>().OnClick(playerAgent);
                }
            }
        }
    }
}

到了这里,关于【Unity】AI-Navigation导航系统生成导航网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity】导航 Navigation 设置:窄桥、隧道、斜坡、台阶、坠落、跳跃

    Navigation 是导航网格的核心模块,可以实现对 Agent(代理)、Area(区域)、Bake(烘焙)、Object(对象)的配置。 烘焙设置可以调整烘焙的方式,如代理半径、可移动斜坡角度等。 Agent Radius :代理半径,这个代理半径决定了烘焙路面距离墙面的距离,有时两面墙距离过近时可

    2024年02月04日
    浏览(52)
  • Unity3D学习记录03——Navigation智能导航地图烘焙

    首先还是在Package Manager中安装AI Navigation 接着选择我们场景的地面,右键,找到AI的NavMesh Surface,它会为我们的Ground添加一个叫NavMesh Surface的子物体 在Inspector窗口中可以看到它的详细的参数: 图中的R,H为你人物的参数,45°为你的人物可以爬行的最大角度 Agent Type里面可以改

    2024年02月08日
    浏览(55)
  • Unity AI 导航系统

    AI导航系统让角色能够理解自身需要走楼梯才能到达二楼或跳过沟渠。智能地移动游戏中的角色(或者 AI 行业中所称的代理)时,必须解决两个问题: 如何_推断_关卡来寻找目标, 然后如何_移动_到该位置。 这两个问题是紧密相关的,但性质却截然不同。关卡推断问题更具全

    2024年02月21日
    浏览(44)
  • Unity AI Navigation自动寻路

    Unity是一款强大的游戏开发引擎,而人工智能(AI)导航是游戏中至关重要的一部分。通过Unity的AI Navigation系统,开发者可以轻松地为游戏中的角色实现自动导航功能。本文将介绍Unity中AI Navigation的基础内容,帮助开发者快速入门。 Unity中的AI Navigation是一套用于游戏开发的导

    2024年04月16日
    浏览(40)
  • unity关于navigation使用的问题——Window没有AI选项以及Navigation烘焙没有效果

    在Window中Package Manager的unity register下载AI Register包,然后你就发现window中有AI选项了 这个我看了其他人的解决方法都没用,然后我自己捣鼓出来了,希望可以给其他遇到这种情况的朋友一点帮助。  1.Gizmos一定要选上为蓝色,也就是右上角的那个类似地球的图标 2.Show only Selec

    2024年02月08日
    浏览(36)
  • unity的AI自动寻路navigation基本用法

     1.场景中的地面和障碍物都设置成静态的,  2.给需要寻路的AI物体添加Nav Mesh Agent 组件, 3在window下面找到navigation,打开选all,调好参数后点击bake 4.运行时用代码实现鼠标点击屏幕一点,AI就自动避让障碍物到达(代码在下面)      

    2024年02月11日
    浏览(48)
  • 【Unity】Unity寻路系统讲解及Navigation实际应用

    Unity常用的寻路方式主要有以下几种: 路点寻路(WayPoint) 单元格寻路(Grid) 导航系统(Navigation) 路点寻路就是在地图上指定一些路点,让角色在路点之间移动。常用于一些固定路线的敌人或物体。 优点:路点寻路的优点是实现起来比较简单,且占用资源少、计算开销低

    2024年02月01日
    浏览(99)
  • 【Jetpack】Navigation 导航组件 ① ( Navigation 引入 | Navigation 特点 | Navigation 重要组件 | Navigation 使用流程 )

    Android 开发中 , 最常用的 UI 架构 就是 使用一个 Activity 嵌套多个 Fragment , 这就需要 对 Fragment 进行管理 ; 在传统的 Android 开发中 , 使用 FragmentManager 和 FragmentTransaction 管理 Fragment 的生命周期 , Fragment 页面切换 , Fragment 切换动画设置运行 , Fragment 与 Fragment / Activity 之间的数据传

    2024年02月09日
    浏览(46)
  • React Navigation 使用导航

    在 Web 浏览器中,您可以使用锚标记链接到不同的页面。当用户单击链接时,URL 会被推送到浏览器 历史记录堆栈 中。当用户按下后退按钮时,浏览器会从历史堆栈顶部弹出该项目,因此活动页面现在是以前访问过的页面。React Native 不像 Web 浏览器那样具有全局历史堆栈的内

    2024年02月11日
    浏览(54)
  • 利用Jetpack Compose进行导航(Navigation)

    Jetpack Compose是一个现代化的,声明式的UI工具包,它让我们可以更快、更简便地构建Android的界面。今天,我们要讨论如何使用Jetpack Compose和它的导航库(Navigation Compose)来进行应用导航。 Navigation Compose是一个用于管理Compose界面中的导航的库,它不仅提供了丰富的API以支持不

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包