Unity添加真实地图的方法探索
- 当前技术现状
- 环境配置过程
- STEP 1:配置Unity及项目环境
- 下载Unity Hub
- 下载Unity Editor
- 创建项目
- STEP 2:配置Unity SDK及外部插件
- 配置SuperMap SDK for Unity
- 配置ArcGIS SDK for Unity
- 配置online-maps资源
- STEP 3:添加地图
- 使用ArcGIS SDK添加地图
- 使用online-maps添加地图
- STEP 4:项目构建与打包
- 最终效果
- 附:重要的外部链接及文档
- Unity Manual
- online-maps插件
- ArcGIS SDK for Unity
- SuperMap SDK for Unity文档
- Unreal Engine路线
说明:本文整理于2022.9.2,整理原因仅是个人探索过程中技术选型和环境配置过程的分享,并不是搭建某种项目的操作手册。此次探索原本的最终目的是使用Unity引擎引入地图,并在地图上能够添加三维模型图层,而且最终能够输出到WebGL平台,打包为H5项目
Github仓库
当前技术现状
-
当前,要在Unity项目中引入真实地图,有两种途径:
- 通过地图SDK
- 通过Unity的资源商店购买一些地图资源及支撑代码
-
当前Unity引擎下的地图SDK有:
-
ArcGIS SDK for Unity (免费,不支持WebGL
-
MapBox SDK for Unity (付费,宣称支持WebGL平台
-
Google Map SDK for Unity (已停止维护,将在12月停止服务
-
Bing Map SDK for Unity (使用人数较少,不支持WebGL
-
SuperMap SDK for Game Engine
超图研究院为Unity和Unreal Engine都开发了地图SDK (尝试中
-
-
目前而言,所有免费的Unity地图SDK都具有以下特点:
-
要求项目为HDRP,至少为URP
-
暂不支持WebGL平台,参考原因
-
因此如果使用这些地图SDK引入地图,项目将无法打包为Web
-
-
如果使用Unity Asset购买地图资源,目前最成熟的插件为online-maps
- 官方收费,但是可以通过https://unityassets4free.com/白嫖资源
- 使用online-maps添加地图,可以成功
- 但是使用online-maps引入的地图都为二维地图,而且仅作为简单图层,并没有给后续添加图层设计接口
环境配置过程
STEP 1:配置Unity及项目环境
下载Unity Hub
一个Dashboard,用来管理引擎版本和Unity项目
https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.exe
下载Unity Editor
打开Unity Hub,下载Unity Editor
建议下载LTS稳定版本:https://unity3d.com/unity/qa/lts-releases
创建项目
安装Unity Editor完成后,创建项目
创建项目完成后,为项目指定开发平台
切换完毕后,需要配置一些选项,否则最终Web项目不能直接运行 (不清楚具体原因,与压缩有关
STEP 2:配置Unity SDK及外部插件
配置SuperMap SDK for Unity
package已经放在了资源文件夹内
在Unity Editor里选择Assets-Import Package
选择SuperMap SDK的unitypackage
加载完成后全部引入
配置ArcGIS SDK for Unity
在Windows标签里打开包管理窗口
然后点击加号,选择从tar包内引入
选择资源里的tgz文件
等待加载完毕后,也许需要重启生效
配置online-maps资源
方法与添加SuperMap SDK for Unity的一致,参考上面
STEP 3:添加地图
使用ArcGIS SDK添加地图
首先你需要有一个ArcGIS API Key,申请方法:
https://developers.arcgis.com/javascript/latest/get-started/#2-get-an-api-key
将你的key添加到SDK中
选择图层、高程、相机等
点击添加
缩放到一定大小后就可以看到
使用online-maps添加地图
请确保online-maps已经添加完毕
在Hierarchy窗口右键
选择地图提供者和地图类型即可
online-map添加的地图并不能直接看到,需要运行后才能渲染(点击播放
此外,并不是所有Provider都可以使用,实测ArcGIS和Google Map可以正常加载
STEP 4:项目构建与打包
在选择平台的界面,选择build,指定输出目录即可
最终效果
附:重要的外部链接及文档
Unity Manual
Unity官方操作手册,所有环境配置问题都需要在这里查看
※ 如果目标平台是WebGL,主要参考以下部分:
https://docs.unity3d.com/Manual/webgl.html
online-maps插件
- 官网
- Doc
- API参考
ArcGIS SDK for Unity
- Doc
- API参考
SuperMap SDK for Unity文档
超图SDK的Doc和安装指南在下载包内
SuperMap SDK的下载地址(11i版本)
打开连接后,SDK在这个位置:
Unreal Engine路线
如果需要更换至UE引擎(目前较流行,Cesium有开发SDK),有以下连接可以参考:
-
Unreal Engine 5 Doc
-
Cesium for Unreal Engine