Cesium For Unity 最新实践流程2 - 20221208

目录

Cesium For Unity 最新实践流程2 - 20221208

1、项目初始化

2、添加数据

3、添加自己的本地或在线三维数据

4、打包

5、运行


上一篇 Cesium For Unity3d 最新实践流程-2022-12-01 讲了如何使用 Cesium For Untiy 发布的项目进行,本篇将讲述如何通过新建项目,加载在线、本地等三维数据的流程。

1、项目初始化

1、新建项目

点击新项目,选择 3D(URP)模板。也可以选择 3D(HDRP)模板,需要注意的是,Cesium for Unity 支持 Universal Render Pipeline(URP) 和 High Definition Render Pipeline(HDRP) 两种渲染管线,但并不支持 Built-in 渲染管线。如果选择空的三维项目作为模板,Cesium 将无法正确渲染要加载的数据集。

d94164f02d044841968dc8f17823ee5d.png

2、未下载该模板的需要先下载,然后点击创建项目即可。

b00ad43b45ad47839c8cf4e777e85234.png

c6e08f776f2a4d9390de52cd0790b642.png 

15ecfeb1086540f189f1605e3545243a.png 

2d7d5858b14845c8b8ed549936703533.png 

f2e8c200cad14db38491e11ae9118a72.png 

2、项目设置

创建完成后,项目正常打开如下:

1187772dc8554408bacb34d1e8425a17.png

1、Edit/Project Settings/Package Manager

打开 Edit/Project Settings

ae86865ca42244449000ef24ba11c31d.png

在 Package Manager 中设置如下:

Name: Cesium
​
URL: https://unity.pkg.cesium.com
​
Scope(s): com.cesium.unity

0d444e38c5d34d46be69ebc6cdaa5e8a.png

2、Window/Package Manager

选择 Window/Package Manger

fb569138c3a244ca8d7e77f5d48e85f2.png

点击 Packages,选择 My Registries

f494661abbc8472494d227a2f4c02395.png

选中 Cesium for Unity,点击 install

bad04c64f7b248899db37f838f81a62f.png

安装完成后,会弹出一个窗口,如下,弹出此窗口的原因是 Cesium for Unity 依赖于 TextMeshPro 包中的资源,默认情况下 Unity 项目中不包含该包。因此需要点击 Import TextMeshPro Essential Resources,来导入依赖的资源。

80e1e3dcfe0a4c4b97b6397a1c6c7377.png

导入资源时,确保 Fonts、Resources、Shaders、Sprites 全部被勾选。

90f838620c97458da00929695bd84a52.png

如果意外关闭此窗口,还可以通过 Windows/TextMeshPro/Import TMP Essential Resources 来打开。

f1de0d754ce840839ebb0f83d9776e60.png

安装完成后,可以通过 Project/Assets/TextMesh Pro 位置查看勾选的是否已经安装:

a61ec3fe20b84b5ca88a8a0e98ae652b.png

3、登录 Cesium icon

1、点击 Cesium/Cesium,点击 Connect Cesium ion ,获取 Token

54e12c7b6e7f4c4b899b7582d35acaa0.png

783c7d8a43ca44f48508caa0e3a04baf.png 

登录 Cesium ion 账户,没有账户的需要先注册账户。点击后会打开一个网页用于登录,登录成功后,会提示 Cesium for Unity is requesting the following permissions,点击 Allow 即可。

5a86339963b2414fa44f02612152d658.png

点击 Allow 之后,网页会提示 Successfully,然后回到 Unity 桌面项目即可。

23689e6056f94cf99c448dddf2da6822.png

可以看到,登录之后,Unity 桌面项目下已经有了 Cesium 的资产:

93c20d1cc34b4354983e431ac4e98688.png

由于 Cesium 的每个资产都需要 Token,因此需要创建 Token。

点击 Token,选择 Create a new token,可以修改 Name,然后点击 Create New Project Default Token,这将为 Cesium 的所有资产创建 Token,以供使用。

f7ea687f6707430c895f015977899788.png

创建好的 Token 将存在于当前 Cesium ion 账户中,如果已经之前已经有过 Token,可以选择 Use an existing token.

4822b8f4691e4f229fc22c96f164b017.png

4、确认项目场景中是否存在 Main Camera 和 a Directional Light

466ca995e7f644028dcba0ba194b1016.png

5df59a0a9dd44275829c5566ed8df298.png  

如果场景中不存在 Main Camera、Direction Light,可以在 GameObject > CameraGameObject > Light > Directional Light

中分别点击添加即可。

2、添加数据

1、添加地形、影像、建筑模型

点击 Add,在 Cesium ion Assets 下选择 CesiumWorld Terrain,点击右侧的 Add to Level。

737face3e1a84d97945c36709e1672db.png

可以看到,三维地形数据已经加载到场景中:

b3f2639c1f9d4beeac05b189b9d8d101.png

添加 Bing Maps 影像:

7976a659261a45c991be97990aa62be4.png

添加 Cesium OSM Buildings:

6ddeb6aaaa6c4befbb6ac513220dba36.png

添加之后,可以看到 Hierarchy 下 有 CesiumGeoreference,其下方有添加后的地形图层和建筑图层。

dbc1b342bf6e4676843e6f2c1eac235e.png

关闭项目后,重新打开,可能会遇到地形资产访问权限问题,如下,地形不显示,可以点击 throize the project's default token to access this asset,也可以重新登录 Cesium ion,申请 Token。

ea76698f48534695aad3a073dd6cbc91.png

2、配置主摄像头

在 Unity 中,地平线上的地形在移动摄像机时会被切断,在 Game 选项卡查看场景时,剪切甚至更糟。

d1d5014eb3eb44c0aff90d27db1cbced.png

为了解决这个问题,可以设置主相机的裁剪平面的值。

近平面是对象开始出现的相机的最小距离。如果此值较大,则不会显示靠近相机的对象。

远平面是物体将出现的与相机的最大距离。任何比远平面更远的东西都不会出现。

而近、远裁剪平面的值需要根据所使用的的数据、场景相应确定。如果计划显示远处的数据,则可以将仅平面设置为较大的值。尽量不要让远平面离近平面太远,否则可能会遇到渲染问题。

此处将近平面设置为1,远平面设置为 1000000.

并取消勾选 Dynamic Clipping,Dynamic Clipping(动态裁剪),可根据场景中的可见内容自动调整摄像机的近裁剪平面和远裁剪平面的值。勾选之后,就无法手动调整近裁剪平面和远裁剪平面的值了。动态裁剪并总是精确的,仍然可能发生裁切。

79b06c159cea41f8b9ab98633731d2e3.png

1925840e5eec4bc98e679c0b73934a3d.png 

3、设置场景默认坐标

点击 CesiumGeoreference,设置 Origin(Longitude Latitude Height),设置后场景会自动跳转到设置位置。

e8717d8647ee4bb8af1fb009520e30ff.png

如下,调整为上海位置。

8730cdf5c3a7428b8cf751a876138f78.png

3、添加自己的本地或在线三维数据

1、选择点击添加 Blank 3D Tiles

a91818a61e52449082a09305b084167e.png

2、添加后将在 CesiumGeoreference 下出现一个名为 Cesium3DTileset 的图层。

cd89056eef6b4ced8495e543382ad3e7.png

3、点击 Cesium3DTileset 图层进行设置

可以修改名称,如下修改为 Cesium3DTilesetTian,然后修改 Source 下的 Tileset Source 选择 From Url,可供下载 3DTile 数据地址:https://cesiumjs.s3.amazonaws.com/downloads/unreal-learning-content/Tileset.zip

c8599c6032d2436bacab6b36ed977bf1.png

4、设置三维数据地址,此地址可以设置在线地址也可以是本机数据地址

此处设置的为本机数据,需要注意的是 URL 地址中 \ 需要替换为 /,如 E:\5UEAndUnityAnd3D\Tileset\tileset.json 替换为 E:/5UEAndUnityAnd3D/Tileset/tileset.json,而且地址中 不允许存在空格,空格需要剔除。

059b490e3ca245c592ad7069c5adb24b.png

5、双击图层定位到

双击 Cesium3DTilesetTian 之后,可以看到数据已经加载,但场景异常如下:

30c4df749c3d4eb9ad8f107de62054e7.png

6、点击 CesumGeoreference,然后点击右侧的 Place Origin Here

6471e18ab40d446c85e34b051ceea73c.png

7、再次双击 Cesium3DTilesetTian,可以看到模型加载正常,地形、影像显示正常。

583be560177e4d1eb4fcc5dceb06ecc7.png

8、但此时模型数据部分是被埋在地下的,此时可以设置当前图层的 Transform/Position 的 Y 值为 74

可以看到修改后,模型数据集已经在地上了。

0f6dec9f5dd54c38b6a8e3d412c9bf0e.png

同理,可以从任何服务器或本地加载 3DTile 数据、地形数据、影像数据,要完全脱机加载资产可以考虑设置 a 来提供数据。可以填充以 .localhost 结尾的URL 字段,如:http://localhost:portNumber/path/to/asset ,如果需要加载 WMS 服务数据,URL应指向资产的主文件,(例如 tilemapresource.xml):http://localhost:portNumber/imageryAsset/tilemapresource.xml

4、打包

选择 File/Building Settings,Platform 选择 Windows,点击 Build And Run,执行构建打包。

4cd4dc032d3846aa8ce8b5dbb466589a.png

5、运行

运行打包后的程序,效果如下:

若运行后,无法显示地形、地图等,请登录 Cesium ion 后,重新打开尝试。

当前打包后的程序,暂无鼠标、键盘事件,场景暂无法缩放、移动等。

686063078997408086cbd936c2958d47.png

猜你喜欢

转载自blog.csdn.net/yinweimumu/article/details/128238955