首页 > 其他分享 >Unity3D导航系统实例

Unity3D导航系统实例

时间:2022-10-13 00:57:05浏览次数:75  
标签:Unity3D 选项卡 Hierarchy 视图 实例 设置 导航系统 控制面板 Navigation

Unity3D导航实例

使用脚本使胶囊体自动导航移动到目标位置,本次为demo实现过程

搭建场景

搭建场景

设置对象

设置场景中的对象

  1. 设置可以行走的对象
    在Hierarchy视图中,选中对象,然后打开Navigation总控制面板,打开Object选项卡,将Navigation Area设置为可以行走的对象(Walkable),如图:


  2. 设置网格分层
    在Navigation总控制面板中的Areas选项卡下,将User3的Name属性修改为Bridge1,将User4的Name属性修改为Bridge2,如图:


  3. 在Hierarchy视图中,分别选中Slope01和Slope02,然后在Navigation总控制面板中的Object选项卡下,将Navigation Area属性分别修改为Bridge1和Bridge2,如图:



  4. 设置地面可以跳跃
    在Hierarchy视图中选中需要跳跃经过的两个对象,然后再Navigation控制面板中的Object选项卡下勾选Generate OffMeshLink复选框,如图:


  5. 设置障碍物
    在Hierarchy视图中选中Wall01和Wall02,在Navigation控制面板中的Object下勾选Navigation Static复选框,然后将Navigation Area设置为Not Walkable,在对象的Inspector视图中添加Nav Mesh Obstacle障碍物组件,如图:



  6. 烘焙导航网格
    在Navigation总控制面板的Bake选项卡下,单机Bake烘焙导航网格,烘焙完成的网格如图:

  • 注意,如果没有烘焙出跳跃的路径,检查一下Bake选项卡下的跳跃距离是否设为0了

设置胶囊体

  1. 设置胶囊体
    在Hierarchy视图中添加3D对象Sphere,命名为Player
    为它添加Nav Mesh Agent组件
    为它添加脚本组件,命名为RunTest
    编辑RunTest脚本:
using UnityEngine;
using UnityEngine.AI;

public class RunTest : MonoBehaviour
{
    public Transform TargetObject;
    void Start()
    {
        GetComponent<NavMeshAgent>().SetDestination(TargetObject.position);
    }
}
  1. 设置目标点Target
    在Hierarchy视图中添加空对象,命名为Target
    将它的位置设置在要将胶囊体移动到的目标位置
    将它拖入到Player对象Runtest组件的TargetPosition选项,如图:

运行游戏

需要注意

  • 在Player的Nav Mesh Agent组件中的Area Mask属性,把需要的寻路层勾选后才会自动寻路

Unity3D导航系统介绍

https://www.cnblogs.com/su-make/p/Unity-Navigation-introduce.html

标签:Unity3D,选项卡,Hierarchy,视图,实例,设置,导航系统,控制面板,Navigation
From: https://www.cnblogs.com/su-make/p/Unity-Navigation-Example.html

相关文章

  • RabbitMQ 生产者和消费代码实例
       启动服务   1.进入rabbitmq的安装sbin目录下cmd进入命令窗口          2.cmd输入命令rabbitmq-server.bat,如图启动成功    ......
  • 应用实例(三):柱状图
    基础使用frompyecharts.chartsimportBarfrompyecharts.optionsimportLabelOpts#使用Bar构建基础柱状图bar=Bar()#添加x轴的数据bar.add_xaxis(["中国",......
  • mysql事务处理用法与实例详解
    MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能2.InnoDB:支持ACID事务、行级锁、并发3.BerkeleyDB:支持事务  一......
  • echarts入门实例
    去echarts官网把dist里的echarts.min.js下载下来然后放进文件夹里然后新建一个html,也放进该文件夹里源码如下:<!DOCTYPEhtml><htmllang="en"><head><metacha......
  • 立体相机开发|几何感知的实例分割
    点击上方“3D视觉工坊”,选择“星标”干货第一时间送达论文下载:​​http://www-scf.usc.edu/~choyingw/works/GAIS-Net/WSAD/CVPRW_CameraReady.pdf​​代码下载:​​https://......
  • DFP 数据转发协议应用实例 3.LoRA 中继-使用频道实现
    DFP数据转发协议应用实例 3.LoRA中继-使用频道实现DFP是什么?稳控科技编写的一套数据转发规则,取自“自由转发协议FFP(FreeForwardProtocol)”,或者DFP(DoubleFProt......
  • 1、Centos7下安装Oracle11gR2及多实例
    实验环境:系统:2核8G内存60G硬盘,centos7.4;优化操作:已经关闭了防火墙、selinux,/etc/hosts文件中以添加"172.16.1.92slave-node2"的主机解析记录;设置u......
  • Windows Server 2012系统实例由于ECN功能导致建立连接较慢
    如何在Windows10系统通过命令行查看TCP全局参数问题描述使用WindowsServer2012系统实例部署业务后,由于ECN功能导致系统建立连接较慢。问题原因WindowsServer2012系......
  • @mysql 使用配置及多实例部署
    文章目录​​一、mysqld服务程序构成​​​​1.连接层​​​​2.SQL层​​​​3.存储引擎层​​​​二、mysql的多实例​​​​1.创建多个数据目录​​​​2.准备多个配置文......
  • 一种基于分层聚合的3D实例分割方法(ICCV 2021)
    HierarchicalAggregationfor3DInstanceSegmentation(ICCV2021)代码地址:​​https://github.com/hustvl/HAIS​​随着商品3D传感器(Kinect、RealSense、Velodyne激光扫......