地图坐标2D映射3D地图场景中

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地图完毕

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tianyongheng/article/details/80320817
个人分类: unity
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

地图坐标2D映射3D地图场景中

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭