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

相关推荐
心前阳光25 分钟前
Unity之使用火山引擎实现文字提问流式回复
unity·游戏引擎·火山引擎
mxwin3 小时前
Unity Shader 什么是球谐光照 原理是什么
unity·游戏引擎·shader
心前阳光3 小时前
Unity之使用火山引擎实现语音识别
unity·语音识别·火山引擎
心前阳光3 小时前
Unity之使用火山引擎实现流式语音合成
unity·游戏引擎·火山引擎
心前阳光5 小时前
Unity之使用火山引擎实现音频剪辑提问,流式语音回复
unity·音视频·火山引擎
心前阳光5 小时前
Unity之音频剪辑提问,流式语音回复使用示例
unity·游戏引擎·音视频
小拉达不是臭老鼠17 小时前
Unity学习_ScriptableObject
学习·unity
Thomas_YXQ18 小时前
Unity无GC读取图片与网格完整方案
大数据·人工智能·unity·微信·产品运营
郝学胜-神的一滴1 天前
中级OpenGL教程 008:精准控制高光光斑大小与强度
c++·unity·godot·three.js·图形学·opengl·unreal
avi91111 天前
Unity 商业插件之(五)课外2 - Zenject的一些小Tips(学习备忘)
unity·游戏开发·团结引擎