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

Unity中NavMesh的使用 及其 导出给java服务端进行寻路

1.先添加 AI Navigation组件

2.Windows-->AI-->Navigation(Obsolete) 这样子就可以看到烘焙按钮

3.将物体标记为行走和不可行走

4.添加一个Plane和一些球体,并把需要形成NavMesh的物体选择为静态 // 因为只能烘焙静态的

        之后可以看出烘焙后,看着被挖空了一样,有些多边形

5.添加一个Player 和 Target,其中Player添加上导航组件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class AI : MonoBehaviour
{
    private NavMeshAgent agent;
    private Transform target;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        target = GameObject.Find("Target").transform;
    }


    void Update()
    {
        agent.SetDestination(target.position);
    }
}

这样子Unity启动的时候,就会躲开障碍了。

6.接下来,我们是要导出这个数据给java服务器使用了,我们思考下如何搞?

初步的思考:可以看出,其实这个NavMesh就是一些多边形信息而已。那我们可以想象下,为了给服务端使用,我们暴露的接口是什么? 必然是:根据这些多边形信息构建出一个对象,NavMeshData, 然后传入 start 和 end 2个坐标,然后返回一个List<float[]> list,仅此而已。

然而,NavMesh导出后,仅仅是一些多边形信息,根本是没办法寻路的,要想寻路。

相关文章:

  • 基于Spring Security 6的OAuth2 系列之十九 - 高级特性--OIDC1.0协议之二
  • 视点开场动画实现(九)
  • KubeSphere 产品生命周期管理政策公告正式发布!
  • ALV某个字段没有显示
  • kubeadm拉起的k8s集群证书过期的做法集群已奔溃也可以解决
  • 【核心算法篇七】《DeepSeek异常检测:孤立森林与AutoEncoder对比》
  • 用Chrome Recorder轻松完成自动化测试脚本录制
  • 计算机网络原理试题六
  • Flink SQL与Doris实时数仓Join实战教程(理论+实例保姆级教程)
  • wangEditor 编辑器 Vue 2.0 + Nodejs 配置
  • 性能测试(三)之环境搭建
  • RocketMQ - 常见问题
  • 12-滑动窗口
  • JavaScript数组-获取数组中的元素
  • Java 富文本编辑器
  • MATLAB更改图论的布局:设置layout
  • C++ 与 Java 的对比分析:除法运算中的错误处理
  • 深入理解 JavaScript 中的视图类型:为什么Int8Array、Uint16Array和Float32Array等是视图?
  • 【C++】string
  • JAVA Kotlin Androd 使用String.format()格式化日期
  • 烈士沈绍藩遗孤、革命家帅孟奇养女舒炜逝世,享年96岁
  • 稳住外贸基本盘,这个中部大省出手了
  • 人民日报评“组团退演出服”:市场经济诚信原则需全社会维护
  • 印度杰纳布河上游两座水电站均已重新开闸
  • 44岁街舞运动推广者、浙江省街舞运动协会常务理事钟永玮离世
  • 视频丨习近平主席出席俄方在机场举行的迎宾仪式