六边形网格地形系统(下)

前言
今天给大家分享的是六边形网格地形系统的原理和技术实现。大家如果听过我们前面课程的话,会知道之前我还讲过一个四边形的网格地形系统。今天的六边形网格地形系统属于另外一种网格地形系统,是很多策略或战旗类游戏当中非常常用的一种
版权声明
本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
更多学习资源请加QQ:1517069595或WX:alice17173获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)
点赞、关注、分享可免费获得配套学习资源
Step 4:让鼠标位置和选中的格子匹配

由于六边形网格在横向和纵向上都进行了偏移,因此无法像四边形网格一样简单的计算鼠标坐标(3D World)和格子坐标的对应关系
这也是网格系统的难点所在
原理图

代码实现

首先通过前面这段代码,取得鼠标的位置
x坐标和z坐标构成一个roughXZ的一个变量,然后再去判断当前是奇数行还是偶数


roughXZ是鼠标当前所在的那个格子,然后通过下面这段代码去遍历所有的周围的六个格子,取得周围六个格子在世界空间当中的一个中心点坐标
计算鼠标位置跟六个格子的中心点的距离。如果它的距离是小于当前我记录的,鼠标中心点靠某个格子的最小距离,那就说明我的格子是在六边形上面的
完整代码

如果你有基础,想要去完整的体验六边形网格系统,大家可以加一下文末Alice老师,然后加入到干货训练营里面的六边形网格系统课程
如果你想要开发一款游戏,但是没有基础或者想要系统的学习一个大型的网络游戏的制作,那么你可以去参考,我们的Unity全栈开发课程
策略类游戏、回合制游戏怎样实现联机对战的联机游玩呢?老师都会在主层进阶课程里面教给大家

如何开发一款4X类型的游

关于网格系统的实践部分我们就讲完了,但是并不代表我们已经完整的去实现了六边形网格系统
后续还有一些需要去完善的内容:
六边形网格的自动寻路
回合制游戏的战斗系统
策略游戏的游戏框架设计(数据/逻辑/UI)
资源管理、热更新、输入控制、性能优化
写在最后
本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
更多学习资源请加QQ:1517069595或WX:alice17173获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)
点赞、关注、分享可免费获得配套学习资源