`

如何在MONO 3D寻找最短路路径

阅读更多

前段时间有个客户说他们想在我们的3D的机房中找从A点到B点的最短路径,然而在2D中确实有很多成熟的寻路算法,其中A*是最为常见的,而这个Demo也是用的A*算法,以下计算的是从左上角到右下角的最短路径:
左上
具体的实现方式是,先将地板进行了分割,分成一个数组,然后再计算该点上是否有3D的对象,若是有,就置成该点不能通过的标记,否则就表示该点可以通过(如果你分割的越细那么算的就越精确,但是算的当然也就慢一些,关键看你的要求),以下是分割地板的代码:

1 var size = {x: 100, y: 100}; // 100*100
2 var topLeft = {x: 228, y: 53};
3 var width = 524;
4 var height = 400;
5 var dw = width / size.x;
6 var dh = height / size.y;
7 var start;
8 var end;
9 var graph;
10 function to2d() {
11     var nodes = [];
12     for (var i = 0; i < size.x; i++) {
13         var nodeRow = [];
14         var x = topLeft.x + dw * i
15         for (var j = 0; j < size.y; j++) {
16             var y = topLeft.y + dh * j;
17             if (isHasObj(x, y)) { //判断该点上是否有物体
18                 nodeRow.push(0);
19             else {
20                 nodeRow.push(1);
21             }
22         }
23         nodes.push(nodeRow);
24     }
25     graph = new Graph(nodes, {
26         closest: null,
27         diagonal: false
28     });
29  
30     //这里是找一条从(0,0)到(79,80)的路径。
31     start = graph.grid[0][0];
32     drawPath(7980);
33 }

分享到:
评论

相关推荐

    unity3d读取xml插件Mono.Xml

    在Unity3D中,处理数据是至关重要的,XML(可扩展标记语言)是一种常见的数据存储和交换格式,因其结构清晰、易于理解和解析而受到青睐。本篇将详细介绍Unity3D中使用Mono.Xml库来读取XML文件的相关知识点。 首先,...

    Unity3D中Mono.Xml和XmlParser的使用

    本教程将深入探讨如何在Unity3D中利用 Mono.Xml 和 XmlParser 类库来解析和操作XML文件。 Mono.Xml 是Mono框架的一部分,它提供了对XML文档的一系列处理工具,包括解析、创建和操作XML节点。这个库包含了...

    Mono环境winform开发

    Mono环境下的WinForm开发是一种跨平台的技术,它允许开发者使用C#语言和.NET框架构建的Windows应用程序在非Windows系统上运行,比如Linux。这个技术基于Mono项目,一个开源的.NET实现,旨在提供与Microsoft .NET ...

    mono+sqlite

    综上所述,这个压缩包包含的文件是用于在Mono(以及在Unity3D中)环境下开发和运行C#程序时,与SQLite数据库进行交互所必需的组件。开发者可以使用这些DLL来创建和操作SQLite数据库,实现游戏或者应用的数据存储功能...

    Mono-Design.7z

    4. **动画和动态模拟**:Mono Design或许支持3D对象的动画制作,允许用户创建交互式的产品演示或运动路径模拟。 5. **协作功能**:为了团队合作,该软件可能集成了版本控制和共享选项,让设计师们可以协同工作,...

    MONO下访问eDirectory的动态链接库Mono.Security.dll

    在IT行业中,MONO是一个开源的.NET框架实现,它允许开发者在多种操作系统上运行.NET应用程序,包括Linux、macOS和Windows。"MONO下访问eDirectory的动态链接库Mono.Security.dll"这一主题聚焦于如何在MONO环境下利用...

    Reactor教程Mono和Flux例子

    在Java生态系统中,Reactor是实现 Reactive Streams 规范的一个关键工具,它提供了Mono和Flux两种核心类型来处理单个值和多个值序列。 Mono代表0个或1个值的发布者,它可以用于处理那些不一定会发生或者只产生一个...

    Practical Mono(PDF扫描版)

    此外,你还将了解到如何利用Mono进行游戏开发,例如使用Unity3D游戏引擎,Unity支持C#脚本并依赖于Mono的运行时。 总的来说,《Practical Mono》是一本全面介绍Mono技术的指南,它不仅适合.NET开发者拓宽视野,也...

    dotnet程序可否跨平台检测工具MONO-Moma

    标题中的“dotnet程序可否跨平台检测工具MONO-Moma”揭示了本文将要讨论的是.NET Framework应用程序在非Windows操作系统上运行的可能性,以及如何利用MONO-Moma工具进行兼容性检测。MONO-Moma(Mono Migration ...

    Mono6.4.0(MAC)

    此指南针对MacOS,没有更改安装路径操作方法(文件太大故此放到百度网盘中,如被和谐,可邮箱联系我) 检查是否安装成功 /Library/Frameworks/Mono.framework/Versions/版本号/bin/mozroots --import —sync 打开....

    【Dnspy】Unity-debugging相关mono补丁

    【Dnspy】Unity-debugging相关mono补丁 在Unity引擎的开发过程中,调试是必不可少的一个环节。...在实际使用中,结合对Unity和Mono的深入理解,可以解决许多棘手的编程问题,实现更高效、更稳定的游戏开发。

    mono-design-v2.1.3

    在设计领域,3D建模通常需要专业软件和复杂的技术,但Mono Design降低了这个门槛。其直观的Editor界面使得初学者能够迅速上手,通过拖拽、设置参数等方式,轻松搭建起复杂的3D环境。这对于数据中心规划、设备布局...

    CentOS配置MONO运行环境

    这时,我们可以借助MONO项目来在Linux上运行.NET应用。本教程将详细介绍如何在CentOS 6.4上配置和安装MONO运行环境。 首先,开始配置MONO环境前,确保系统是最新的。执行`yum update`来更新所有已安装的软件包和...

    docker的mono镜像

    在docker的mono镜像中加入一些基本命令包,方便开发(公司内网有些不能下)。有需求的直接下载,同时不需要再到仓库龟速下载了。送上安装命令: docker load -i mono.tar

    Windows下Apache配置Mono

    在Windows操作系统中配置Apache服务器以运行Mono是一个常见的需求,这主要适用于那些希望在Windows环境下使用ASP.NET或其他.NET框架应用程序的开发者。Apache与Mono的结合可以让用户在非Microsoft环境中运行.NET应用...

    Xamarin Mono For Android

    【Xamarin Mono for Android】是Xamarin公司提供的一款开发工具,它允许开发者使用C#...通过遵循上述步骤,开发者可以在Windows环境下搭建起一个完整的Xamarin Mono for Android开发环境,从而开始创建Android应用。

    MONO 开发手册

    5. **跨平台兼容性**:讨论在不同操作系统上运行.NET应用时可能遇到的问题及解决策略,包括文件路径、线程同步、GUI平台差异等。 6. **ASP.NET与MONO**:介绍如何在MONO环境中开发和部署ASP.NET Web应用程序,以及...

    mono开发包

    Mono是一个开源的、跨平台的.NET框架,它允许开发者在非Windows系统上,如Linux、macOS或Android等,运行和开发.NET应用程序。这个“mono4.0”开发包是针对版本4.0的更新,提供了对.NET Framework 4.0的兼容性和支持...

    mono下载安装过程实录以及模块分析

    在安装 Mono 之前,作者首先介绍了 Mono 的概念和特点,指出 Mono 是一个开源的、跨平台的.NET Framework 实现,能够使.NET 程序在 Linux 下运行。然后,作者详细记录了安装 Mono 的过程,包括使用 wget 命令下载 ...

Global site tag (gtag.js) - Google Analytics