Unity 导出NavMesh (可行走区域判定) 数据给服务器使用

简介: cp790621656 博客专家 Unity 导出NavMesh (可行走区域判定) 数据给服务器使用 发表于2016/9/26 18:15:11  1089人阅读 分类: Unity MMO 这个项目的客户端使用Unity 自带的 NavMesh 来做寻路。

img cp790621656

博客专家    

Unity 导出NavMesh (可行走区域判定) 数据给服务器使用

发表于2016/9/26 18:15:11  1089人阅读

分类: Unity MMO

这个项目的客户端使用Unity 自带的 NavMesh 来做寻路。然后怪物的刷新以及移动是由服务器负责的,但是这样会有一个问题,如果怪物在场景边缘或者怪物与人之间有障碍物,服务器是又不知道这里有障碍物,那怪物的移动就没法做了。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn  转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn  转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn  转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn  转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn  转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

所以有这么个需求,让服务器能够判定当前移动位置是否在可行走区域之内。

所以就需要把客户端的 NavMesh数据导出给服务器使用(或许有其它的办法)。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn  转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

Unity 提供了相关的接口:

 

NavMesh.CalculateTriangulation


利用这个接口能够获取到NavMesh 的数据,顶点以及顶点索引。

熟悉GL或DX的童鞋知道有了顶点以及顶点索引就可以画出模型来。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

下面是我写的一个简单的示例,用来把NavMesh 数据导出到一个 obj 文件,obj 是一种文本形式存储的模型文件格式。导出之后直接拖到Unity 中可以看到NavMesh 的形状。

 

/************************************************
 * 文件名:ExportNavMesh.cs
 * 描述:导出NavMesh数据给服务器使用
 * 创建人:陈鹏
 * 创建日期:20160926
 * http://blog.csdn.net/huutu/article/details/52672505
 * ************************************************/

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
using UnityEngine.SceneManagement;

public class ExportNavMesh
{
    [MenuItem("NavMesh/Export")]
    static void Export()
    {
        Debug.Log("ExportNavMesh");

        NavMeshTriangulation tmpNavMeshTriangulation = NavMesh.CalculateTriangulation();

        //新建文件
        string tmpPath = Application.dataPath + "/" + SceneManager.GetActiveScene().name + ".obj";
        StreamWriter tmpStreamWriter = new StreamWriter(tmpPath);

        //顶点
        for (int i=0;i 
   

 

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

点击Export 导出后,会生成以 当前 Scene 命名的 obj 文件

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

拖到Unity 中绘制出来如下,证明我们成功导出了NavMesh的数据

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

把这个 obj 扔给服务器,服务器进行怪物是否在三角形 范围内判定。具体怎么做我不管了。

 

相关文章
|
8月前
|
网络协议 关系型数据库 应用服务中间件
如何迁移网站数据到新的服务器
迁移网站数据到新服务器是一个系统化的过程,需谨慎操作以避免数据丢失或服务中断。小编为您整理发布如何迁移网站数据到新的服务器,以下是详细步骤和注意事项。
|
11月前
|
缓存 人工智能 架构师
释放数据潜力:利用 MCP 资源让大模型读懂你的服务器
MCP(Model Control Protocol)资源系统是将服务器数据暴露给客户端的核心机制,支持文本和二进制两种类型资源。资源通过唯一URI标识,客户端可通过资源列表或模板发现资源,并使用`resources/read`接口读取内容。MCP还支持资源实时更新通知及订阅机制,确保动态数据的及时性。实现时需遵循最佳实践,如清晰命名、设置MIME类型和缓存策略,同时注重安全性,包括访问控制、路径清理和速率限制等。提供的示例代码展示了如何用JavaScript和Python实现资源支持。
1108 80
|
7月前
|
存储 安全 数据管理
服务器违规资源被删,数据定时备份OSS 云存储才是 “救命稻草”
在数字化时代,数据已成为企业与个人的核心资产。然而,服务器违规、硬件故障等问题频发,导致数据丢失、业务中断,甚至造成不可挽回的损失。为保障数据安全与业务连续性,定时备份至关重要。阿里云国际站OSS提供高效、可靠的云存储解决方案,支持自动定时备份,帮助用户轻松应对数据风险。本文详解OSS备份操作步骤与注意事项,助你为数据穿上“防护甲”,实现安全无忧存储。
|
9月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
511 18
|
9月前
|
弹性计算 安全
阿里云服务器镜像,快速迁移项目数据
有时候旧服务器快到期了,想把项目、数据、软件挪到新服务器上,如果全部重新搭建的话,那无疑是耗时又费力。有了镜像迁移,就方便了许多。
699 1
|
10月前
|
弹性计算 NoSQL 数据库
阿里云服务器如何备份数据?
阿里云服务器数据备份有多种方法,用户可按需选择。主要方式包括:1)快照备份,创建云盘的时间点拷贝,支持定期备份与数据恢复;2)数据库备份DBS,适用于多种环境的数据库备份,涵盖本地及多云场景;3)云备份Cloud Backup,提供统一灾备平台,支持ECS整机、数据库、文件系统等全方位备份,保障数据安全。
|
10月前
|
存储 数据库 Python
使用HTTP POST协议将本地压缩数据发送到服务器
总的来说,使用HTTP POST协议将本地压缩数据发送到服务器是一个涉及多个步骤的过程,包括创建压缩文件,设置HTTP客户端,发送POST请求,以及服务器端的处理。虽然这个过程可能看起来复杂,但一旦你理解了每个步骤,就会变得相对简单。
374 19
|
11月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
514 28
|
5月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
463 10
|
5月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。