unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型

最近打算用mapbox 做地图,发现一个有意思的功能。就是可以用mapbox把里面的地点替换为我们自己定制的品牌建筑模型,也可以在3D地图上生成一个非常详细的历史遗迹。

具体方法是:使用<b>Feature Replacement Modifier</b>在给定的时间用您提供的预制件替换一个默认的挤压建筑。

也可以直接将你的功能替换修改器添加到你的建筑物可视化工具的游戏对象修改器列表中。

unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型

游戏对象修改器是与网格和游戏对象一起工作的脚本对象,可以让你进一步装饰、增强或修改你的游戏对象。要创建一个新的修改器,在您的项目窗口中右键单击并导航到创建> Mapbox >修改器

unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型

您也可以通过点击AbstractMap脚本的“游戏对象修改器>行为修改器”部分中的“添加新”来创建修改器。

ReplaceFeatureModifier overview

打开这个例子的修改器,导航到MAP LAYERS > FEATURES,然后选择ExtrudedBuildings地图功能。接下来,选择ExtrudedBuildings,打开行为修饰符部分。

unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型

在游戏对象修改器下,双击 ReplaceFeatureModifier.这将在检查器窗口中打开修改器,你将看到以下设置:

Active: 这个布尔值设置可以打开或关闭修饰符

Prefab:这是3D对象衍生的地方的功能被指定

Scale down with world: 此设置将指定的预制件缩放到tile的大小。

Prefab Locations: 这是一个数组,用于保存要用所提供的预制件替换的所有建筑物和特征的所有位置。可以通过增加大小值向数组中添加新元素。点击Search 找到一个特征 feature, 或粘贴经纬度坐标。

Explicitly Blocked Feature Ids: 这是ExtrudedBuildings层上防止生成的id列表。您可以将其保留为空,除非您发现纬度和经度坐标没有正确地过滤出要替换的正确建筑。

在渗出建筑物的高级部分中,会检查具有唯一id的建筑物。同样,在同一层中没有选中Group特性。这些设置是特性替换按预期工作所必需的。
,双击ReplaceFeatureModifier。这将在检查器窗口中打开修改器,你将看到以下设置:

unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型

Replace a building with a 3D model用3D模型替换建筑

 

按照下面程中的步骤,用自定义的3D模型替换帝国大厦

要用3D模型替换建筑,可以配置一个新的ReplaceFeatureModifier。在你的项目窗口中,打开城市模拟器场景 Mapbox > Examples > 0_PrefabScenes folder.另外,您可以创建一个新场景,并将CitySimulatorMap预置添加到场景中。

  1. 在层级窗口中选择CitySimulatorMap游戏对象。
  2. 在AbstractMap上导航 MAP LAYERS > FEATURES,然后选择 ExtrudedBuildings 地图功能
  3. 选择溢出的建筑ExtrudedBuildings,并打开行为修饰符Behavior Modifiers.。
  4. 在游戏对象修改器下,点击添加新,然后选择ReplaceFeatureModifier

unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型

  1. 这将创建一个新的修改器。双击NewReplaceFeatureModifier在检查器窗口中打开修改器。
  2. 分配 Building Pivot prefab. 你可以在这里使用你自己的模型。这里我用了一个卡通的小汽车模型做demo
  3. unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型
  4. 点击Prefab Locations将大小改为1。
  5. 点击Search 搜索帝国大厦或将40.748333333333,-73.985277777778粘贴到0号元素。unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型
  6. 为了确保帝国大厦的位置在摄像机的视野中,在你的层级中选择CitySimulatorMap。然后,在AbstractMap脚本的一般设置中,将经纬度设置为40.748333333333,-73.985277777778,即建筑物的位置。
  7. unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型
  8. 最后运行程序,可以看到我加的小汽车模型出现在地图中。完成
  9. unity mapbox gis真实3D地图 地图上加载自己真实的建筑模型