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导出后,仅仅是一些多边形信息,根本是没办法寻路的,要想寻路。

相关推荐
平行云2 小时前
实时云渲染预启动技术解析:UE数字孪生应用的延迟优化机制(二)
linux·unity·ue5·webgl·实时云渲染·云桌面·像素流
心前阳光9 小时前
Unity之PhotonServer使用注意
unity·游戏引擎
Mark White12 小时前
行为树(Behavior Tree):从 ROS 机器人到 Unity 游戏 AI 的统一决策范式
游戏·unity·机器人
小贺儿开发13 小时前
Unity UGUI 可视化热区编辑与交互系统
unity·编辑器·游戏引擎·交互·工具·适配·ugui
郝学胜-神的一滴15 小时前
中级OpenGL教程 007:解决背面光照异常高光问题
c++·unity·游戏引擎·three.js·opengl·unreal
RReality15 小时前
【Unity Shader URP】水面效果 实战教程
unity·游戏引擎·图形渲染
游乐码16 小时前
c#基础(七)延迟函数
开发语言·unity·c#·游戏引擎
LONGZETECH16 小时前
Unity 3D+C/S架构无人机数字孪生实训室:破解实训“三高”难题的底层技术实现
c语言·开发语言·3d·unity·架构·无人机
万岳科技系统开发1 天前
外卖系统小程序开发趋势:即时零售与同城配送的融合升级
unity·游戏引擎·零售
十贺1 天前
【Unity开发字典】分包、黏包基本概念和处理逻辑实现
unity·游戏引擎