首页 前端知识 【Unity】Unity添加真实地图的方法探索

【Unity】Unity添加真实地图的方法探索

2024-05-05 22:05:22 前端知识 前端哥 349 245 我要收藏

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

image-20220902143129823

建议下载LTS稳定版本:https://unity3d.com/unity/qa/lts-releases

image-20220902143052743

创建项目

安装Unity Editor完成后,创建项目

image-20220902145622691

创建项目完成后,为项目指定开发平台

image-20220902150546233

image-20220902150633674

切换完毕后,需要配置一些选项,否则最终Web项目不能直接运行 (不清楚具体原因,与压缩有关

image-20220902151231619

image-20220902153134839

STEP 2:配置Unity SDK及外部插件

配置SuperMap SDK for Unity

package已经放在了资源文件夹内

在Unity Editor里选择Assets-Import Package

image-20220902153436389

选择SuperMap SDK的unitypackage

image-20220902153536517

加载完成后全部引入

image-20220902153658535

配置ArcGIS SDK for Unity

在Windows标签里打开包管理窗口

image-20220902153805007

然后点击加号,选择从tar包内引入

image-20220902153839694

选择资源里的tgz文件

image-20220902153926755

等待加载完毕后,也许需要重启生效

配置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中

image-20220902154143997

image-20220902154224753

选择图层、高程、相机等

image-20220902154420278

点击添加

image-20220902154450390

缩放到一定大小后就可以看到

image-20220902154543738

使用online-maps添加地图

请确保online-maps已经添加完毕

在Hierarchy窗口右键

image-20220902154715962

选择地图提供者和地图类型即可

image-20220902154757630

online-map添加的地图并不能直接看到,需要运行后才能渲染(点击播放

此外,并不是所有Provider都可以使用,实测ArcGIS和Google Map可以正常加载

STEP 4:项目构建与打包

在选择平台的界面,选择build,指定输出目录即可

image-20220902155132028

最终效果

在这里插入图片描述

附:重要的外部链接及文档

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

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7032.html
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!