最近项目有个需求,需要实现的效果如下:

左右上下相邻正六边形的位置坐标如下:

分析:
一行中,两个相邻六边形相差80,假设第一个x坐标为0,则下一个相邻六边形的x值为:

(x-1)*80

上下相邻两个六边形的X值相差-40,两两一循环,因此,可以用y值来确定X的偏移量:

local offX = y%2 == 0 and -40 or 0

最终x的坐标为:

local offX = y%2 == 0 and -40 or 0
(x-1)*80+offX

X的坐标确定啦,Y坐标就更简单了,上下两个相邻的y差值为70,假设第一个y坐标为0,则,对应的其他y坐标为:

(y-1)*70

最终,每个正六边形的坐标也就确定了,为:

local offX = y%2 == 0 and -40 or 0
go.transform.localPosition = Vector3.New((x-1)*80+offX,(y-1)*70,0)

完整代码如下:

ui.list = base:findobj("list")
ui.item = base:findobj("item")local function RefreshUI()local length = 8--长local width = 4--宽local itemList = {}for y=1,width doitemList[y] = {}for x=1,length dolocal obj = utils.addchild(ui.list,ui.item)utils.findtext(obj,"Text").text = string.format("%s_%s",x,y)itemList[y][x] = objlocal offX = y%2 == 0 and -40 or 0itemList[y][x].transform.localPosition = Vector3.New((x-1)*80+offX,(y-1)*70,0)SetActive(obj,true)endend
end

unity之二维数组实现正六边形地图相关推荐

  1. java 稀疏数组和二维数组转换,并保存稀疏数组到文件后可以读取

    稀疏数组和二维数组转换 稀疏数组:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方法: 记录数组一共有多少行,有多少个不同的值 把具有不同值得元素的行 ...

  2. JAVA复习(二维数组——快排——迷宫)

    二维数组: (了解) 定义: 一维数组:  int[] array=new int[3] ;开辟了3个空间的int类型的数组 二维数组: int[][] 对于二维数组的初始化定义: 数组的动态初始化: ...

  3. c语言利用二维数组制作地图,用程序实现RPG背景地图二维数组构建

    朱艳萍 摘要:该文主要阐述了前端RPG开发中,当作为背景的地图较为复杂时,如何用程序的方法构建与背景地图一致的二维数组,采用图文结合论述其算法,并使用原生JavaScript语言实现. 关键词:二维数 ...

  4. 杰神之JAVA二维数组(案例:走迷宫)

    Java二维数组(案例:走迷宫) 二维数组 数组的数组-二维数组的每一个元素是一个一维数组 定义方式: 数据类型[][] 数组名 = new 数据类型[长度][长度]; 数据类型[][] 数组名 = ...

  5. 基于二维数组的六边形地图数据结构的实现(蜂窝拓补)

    前言:这是很久之前写游戏的时候想到的实现方法,现在重新放上来.寻路算法写得好挫啊,现在写的话肯定好看很多,但我懒得改了-- Hexagon-Data-structure This is a Simpl ...

  6. Java IDEA Debug进制二维数组

    1.Debug模式 1.1 什么是Debug模式 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. 1.2 Debug介绍与操作流程 如何加断点 选择 ...

  7. 软件工程——求二维数组所有子矩阵的和的最大值

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为 ...

  8. jupyter notebook多维数组运算_Python创建二维数组的正确姿势

    List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...

  9. 二维数组离散程度matlab,(十八)数据分析中的一些概念

    (十八)数据分析中的一些概念 HIKAI 29 SEP 2017 0 Comments 矢量.向量.标量 矢量和向量是一个东西,只是在不同领域里面用到的不同称呼.矢量常常用在物理学中,向量在数学.几何 ...

最新文章

  1. 第七篇:并发-恢复机制
  2. Dubbo服务降级配置
  3. 卷积Strassen算法
  4. java 状态机_基于 RAFT 一致性算法的 Java 实现 SOFAJRaft
  5. 得罪前女友到底有多可怕?
  6. Spring的@Scheduled 动态更新cron表达式
  7. css布局方式_网页布局都有哪种?一般都用什么布局?
  8. Oracle事务处理
  9. 浏览器和服务器交互原理?(请求--响应的过程)
  10. UE3 Lightmass 技术指南
  11. sql python 教程_Python SQLAlchemy ORM教程(3)
  12. node服务器给客户端发消息,上的node.js发送消息客户端 - 服务器 - 客户端上socket.io(Sen...
  13. 机器学习分类算法综述
  14. 没有记录让grivdview显示
  15. MySQL索引实现、MySQL索引原理、索引下推、索引覆盖、索引失效
  16. 精通innodb引擎_《MySQL技术内幕:InnoDB存储引擎》PDF 下载
  17. 手把手教你使用Bitvise Tunnelier设置SSH代理服务器
  18. excel自动求和_excel自动求和你会吗?更改姓名自动算出总分,三个函数轻松搞定...
  19. 社交软件红包技术解密(十):手Q客户端针对2020年春节红包的技术实践
  20. 程序员面试必备,HR 的那些黑话大全,太真实了!

热门文章

  1. 高德尝试用“成本价”推动共享,但高精地图行业不只有价格
  2. 常用SEISMIC BINARY数据的读取
  3. [附源码]计算机毕业设计Python+uniapp作业批改系统APP4238p(程序+lw+APP+远程部署)
  4. 【图像超分辨率重建】——GRL论文精读笔记
  5. 物流管理APP软件开发公司 让货运变得更简单
  6. python爬微博超话图片_Python爬虫:《庆余年》人物图谱和微博传播路径
  7. 传统图片超分算法——双三次插值 (Bicubic)、附C++源码
  8. ue的xml格式转换_迷你档-迷你档(minidown)下载 v2.5官方版--pc6下载站
  9. 牛客NC23053月月查华华的手机 题解(指针优化)
  10. 【Python】多图形混合排版,如何在Matplotlib/Seaborn中实现?