Laya 踩坑日记 ---A* 导航寻路
要做寻路,然后看了看laya 官方的例子,感觉看的一脸懵逼,早了半天的api 也没找到在哪有寻路的,最后一看代码,原来是用的github上的A星方案 https://github.com/bgrins/javascript-astar
这就尴尬了,,然后研究了一下,果然还是要unity支持,导出烘焙过的地图信息,在网上找了一些方案,然后自己也做了一下修改和调整,现在给大家发出来,(当做参考用 。。。)
需要unity 插件 A* (AstarPathfindingProject )
然后配置好地图,然后烘焙

然后 通过AstartExpLayaTool /exp json 导出地图的json信息 (json信息 已自动复制到 剪切板中了)
在通过laya 去调用
Laya 这边 将json 信息给存起来然后调用
通过github 把 astar.js 给下载下来,然后放到项目的libs下,编写 .d.ts 辅助文件
declare class astar {
      /**
         * Perform an A* Search on a graph given a start and end node.
         * @param {Graph} graph
         * @param {GridNode} start
         * @param {GridNode} end
         * @param {Object} [options]
         * @param {bool} [options.closest] Specifies whether to return the
                     path to the closest node if the target is unreachable.
        * @param {Function} [options.heuristic] Heuristic function (see
        *          astar.heuristics).
        */
    static search(graph, start, end, options?);
    cleanNode(node);
}
declare class Graph {
    /**
     * A graph memory structure
     * @param {Array} gridIn 2D array of input weights
     * @param {Object} [options]
     * @param {bool} [options.diagonal] Specifies whether diagonal moves are allowed
     */
    constructor(gridIn, options?)
    grid: any;
}
declare class GridNode {
    x;
    y;
    weight;
    constructor(x?, y?, weight?)
}
然后编写自己寻路代码就行了

备注:此方案当前性能偏低,将坐标对应矩阵部分有问题,但作为一个参考还是可以的
laya地址 https://gitee.com/eryuefeng/laya-astar-pathfinding
Laya 踩坑日记 ---A* 导航寻路的更多相关文章
- Laya 踩坑日记-人物模型穿模,模型显示不正常
		最近做游戏,人物要跑到很远的位置,z轴距离大概有20000个单位,然后就发现一个bug,到远处人物模型穿了,而且没办法改,这就尴尬了 Z轴对应值 0 100000 100000 当距离零点 ... 
- Laya 踩坑日记-BitmapFont 不显示空格
		项目中有用到艺术字,美术通过 bmfont64 将字体导给我了,结果发现在应用上 空格不显示 如图: 今天去深究了一下这个问题,发现是底层没封装好,然后自己改了一下下面是改过的 BitmapFont ... 
- Laya 踩坑日记-BitmapFont 字体模糊
		基于bitmap 制作的字体,放到项目中,因为最终使用的是位图字体(所有的字全是一张图片),所以一旦出现压缩./放大等情况的时候, 字体就开始模糊了,暂时没有他好的办法解决 
- AI相关 TensorFlow -卷积神经网络 踩坑日记之一
		上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ... 
- 人工智能(AI)库TensorFlow 踩坑日记之一
		上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ... 
- hexo博客谷歌百度收录踩坑日记
		title: hexo博客谷歌百度收录踩坑日记 toc: false date: 2018-04-17 00:09:38 百度收录文件验证 无论怎么把渲染关掉或者render_skip都说我的格式错误 ... 
- Hexo搭建静态博客踩坑日记(二)
		前言 Hexo搭建静态博客踩坑日记(一), 我们说到利用Hexo快速搭建静态博客. 这节我们就来说一下主题的问题与主题的基本修改操作. 起步 chrome github hexo git node.j ... 
- Hexo搭建静态博客踩坑日记(一)
		前言 博客折腾一次就好, 找一个适合自己的博客平台, 专注于内容进行提升. 方式一: 自己买服务器, 域名, 写前端, 后端(前后分离最折腾, 不分离还好一点)... 方式二: 利用Hexo, Hug ... 
- JavaScript 新手的踩坑日记
		引语 在1995年5月,Eich 大神在10天内就写出了第一个脚本语言的版本,JavaScript 的第一个代号是 Mocha,Marc Andreesen 起的这个名字.由于商标问题以及很多产品已经 ... 
随机推荐
- THE BUG 队第一次团队项目作业
			队名: THE BUG 队 2.队员学号: 杨梓琦 3118005115(队长) 温海源,3118005109 陈杰才,3118005089 李华,3118005097 钟明康,3118005123 ... 
- CSMA系列区别比较:p-pCSMA;CSMA/CA;CSMA/CD
			CSMA系列小结 CSMA,又称载波侦听多路访问协议.在计算机网络课程中,其一共有四个基础协议与两个实际应用(分别是802.11和802.3) 忙 空闲 传输冲突 应用 1-p CSMA 持续侦听,等 ... 
- 剑指offer二刷——数组专题——数组中出现次数超过一半的数字
			题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ... 
- javascript中 fn() 和 return fn() 的区别
			在js中用return和不用return,输出结果有的时候傻傻搞不清,之前在网上看到个例子挺经典,不过讲的不清楚,上例子: var i = 0; function fn(){ i++; if ... 
- 算法——最长上升子序列(DP和二分)
			给定一个无序的整数数组,找到其中最长上升子序列的长度. 输入: [10,9,2,5,3,7,101,18] 输出: 4 纯DP 解体思路:利用动态规划的方法,从一个方向遍历数组,每次获取以该位置为子序 ... 
- js中的bind、apply、call、callee、caller的区别
			1.bind.apply与call的区别与使用 相同点:2者是函数原型的一个方法,因此调用者都必须是函数,第1个参数都是对象.作用是,用另一个对象替换当前对象,另一对象也即是你传的第一个参数.通常用于 ... 
- mysql  查询 添加  删除 语句
			1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 d ... 
- HDU4388-Stone Game II-Nim变形
			http://acm.hdu.edu.cn/showproblem.php?pid=4388 Nim变形,对一个\(n\)个石子的堆,每次取\(k(0<k<n)\)个(注意不能全取光),同 ... 
- DirectX12的初始化
			DirectX12的初始化主要分为以下若干步骤: 创建device和gifactory 创建与GPU通信同步相关的objects,command和fence 创建swap chain 为render ... 
- 【Git】命令思维导图
			Git命令思维导图 
