上周的工作重点转移到服务器寻路上来,刚刚做完没几天,总结一下,当时团队讨论的结果是使用 Unity 原生的 NavMesh 系统,然后将数据导出到服务器使用.我最初的思路是将导出的网格加载到服务器后,自己写 A* 算法来寻路,但看了 RecastNavigation 后,果断放弃想法,想使用已导出的数据到 RecastNavigation 中使用,按照作者的简介是可以,但是并没有相关的代码,后来翻到了一篇关于这个的帖子,作者明确回答说没有时间做这个功能,所以就只能自己动手,丰衣足食了,有这么个系…
目前的工作需要加入自动寻路,后来决定使用 unity 自带的 NavMesh,但有个问题是这个寻路数据,服务器也是需要的,那么我就要把这个数据导出为服务器所用才行.      但 NaveMesh 暂时没有官方接口说如何导出这个 Mesh 的顶点数据,后来在论坛里发现 Unity 内部的人说,确实有接口可以导出数据,但是忘了名字...汗|||,还补充说这个接口只能在编辑器模式下使用,不过还好有人在下面给出了这个重要接口,那就是:  NavMesh.Triangulate(out Vector3[…
Unity里面整合了一个NavMesh功能,虽然让人又爱又恨. 但当你在其他地方需要这个NavMesh的数据时,就更让人欲罢不能了. 比如说服务器需要Unity的NavMesh数据时. 比如说你想将Unity的场景导出到其他引擎时,比如时下流行的H5.   最近我就碰到了这样一个需求,走了一些弯路,研究了Unity的NavMesh 将Unity的NavMesh数据导出 先说代码,我编写了一个导出脚本,将navmesh数据可以导出成一个obj,也可以导出成一个json文件 你可以用svn 获取代码…
使用unity的API   NavMesh.CalculateTriangulation 可以获取NavMesh数据 首先 我们创建一个新的工程 保存一个test场景 然后在场景中添加一个Plane作为地面可以寻路,添加几个cube作为障碍物,添加一个灯光  如图 点击左上角Window->Navigation     打开Navigation窗口 选中plane对象设置参数 如图 同样的操作选中cube设置参数 不过Navigation Area参数为Not Walkable 最后点击右下角B…
上一章节我们已经看了怎么获得NavMesh数据保存为obj 这一章节我们来读取NavMesh数据 首先我们要定义两个结构体 点 和 三角形 为什么不用unity自带的Vector3呢? 相信你们应该已经知道  我们的寻路不能使用浮点运算 这时候我们就要确定一个精度 我这里设置为10000 namespace AStar { public class AStarConfig { /// <summary> /// 精度 /// </summary> ; } } 点结构体: using…
为了解决用Application.LoadLevelAdditiveAsync 导致新场景的Navmesh数据不正确(我们用的是4.63),我们现在loading条做法是先切到Loading的场景,然后把Loading的GameObject标记成DontDestroyOnLoad,然后调用Application.LoadLevelAsync去切换下一个场景,用Application.LoadLevelAsync返回的async去更新Loading的进度.…
工具软件 Excel Nodepad++ Sublime Unity 5.4 / 5.6 VS RecastDemo CodeBlocks 分析过程以Unity项目-Demo13为例 一. 创建测试模型 在Unity里搭建一个简单的寻路模型,并导出模型obj到Recastnavigation. 首先, 寻路模型要尽可能简单,(在Unity里,只包含2个NavMesh Tile),这样生成的二进制数据量会较少,分析的工作量会小很多 其次, 两个工具用相同的模型,以便二进制对比时能发现更多的相同点.…
一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马上要进入研三了,这套系统和我本人一样,前途未卜.一方面,实验室要求重新以JAVA开发一套数据挖掘框架而放弃当前的.NET版本,我的思路是两边一起发展,优势互补,可惜后继无人.另一方面,马上毕业的我,未来做不做数据挖掘工作都是两说,在多方面的压力下,开发软件目前近似于奢侈的选择.但是,就算是为了自己心…
<Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项目侧自行进行简单的数据泵迁移工作. 本文实验环境:Oracle 11.2.0.4,利用数据库自带的scott示例用户进行试验测试. 1.首先需要创建Directory 2.使用expdp导出用户数据 2.1 只导出scott用户的元数据,且不包含统计信息: 2.2 只导出scott用户的数据: 2.3 只导出…
<Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项目侧自行进行简单的数据泵迁移工作. 本文实验环境:Oracle 11.2.0.4,利用数据库自带的scott示例用户进行试验测试. 根据<简单常用的数据泵导出导入(expdp/impdp)命令举例(上)>的expdp导出的二进制文件进行impdp导入. 1.首先需要创建Directory 2.创建…