1.采集数据的地图mapData(名称),地图 长、宽: L,W
2.unity 需要一张地图map(名称) 长、宽:L/N,W/N (N 是缩放系数,和数据采集的地图保持比例 不能压缩变形)
unity 中的地图是3D模型 还是是2D平面 分两种情况
处理3D模型:
1. unity 中新建Canvas
2. 在3DMapCanvas下新建Panel命名为mapPanle 将map添加mapPanel的Image组件,同时设置mapPanel 的
Width=L/N,Height=W/N 即 分别对应map图片的长、和宽, 在mapPanel下新建imge命名为point,设置锚点为左上角
3.设置3DMapCanvasRenderMode :WorldSpace
4.找到3D地图模型,将3DMapCanvas位置和旋转以及缩放调整,保持和3D模型横截面重合。
5.注意 3DMapCanvas 和 3D地图模型可以放置统一的根节点下,根节点 缩放保持为1
6.界面处理完毕。
7.处理坐标 :平面坐标映射3D坐标
图片坐标系是左上角(0,0) 右下角(width,hight)
unity UI坐标系 可以根据自身锚点设置
例如Panle 作为地图容器 设置锚点任意一般设置中心,子节点point(width=0,hight=0) 设置锚点在左上角
此时Panel坐标系 左上角(0,0)右下角(width,-hight)
处理分三个步骤转换:
步骤一 :在mapData上采集的点source=(x,y)
步骤二 : 映射到缩放后的map地图上的点mapSource=(source.x/N,source.y/N)
步骤三:映射到mapPanel上point的anchoredPosition=(mapSource.x,-mapSource.y)
此时 平面地图坐标 映射到3D地图完毕
8.处理坐标 :平面坐标映射unity2D坐标
图片坐标系是左上角(0,0) 右下角(width,hight)
unity UI坐标系 可以根据自身锚点设置
例如Panle 作为地图容器 设置锚点任意一般设置中心,子节点point(width=0,hight=0) 设置锚点在左上角
此时Panel坐标系 左上角(0,0)右下角(width,-hight)
处理分三个步骤转换:
步骤一 :在mapData上采集的点source=(x,y)
步骤二 : 映射到缩放后的map地图上的点mapSource=(source.x/N,source.y/N)
此时 平面地图坐标 映射到2D地图完毕