【WebGIS干货分享】Webgis 面试题-浙江中海达

1、Cesium 中有几种拾取坐标的方式,分别介绍

Cesium 是一个用于创建 3D 地球和地理空间应用的 JavaScript 库。在 Cesium 中,你可以使用不同的方式来拾取坐标,以便与地球或地图上的对象进行交 互。以下是 Cesium 中几种常见的拾取坐标的方式: 鼠标拾取(Mouse Picking):通过监听鼠标事件(例如鼠标单击或移动)并使 用 Cesium 的 API 来检测鼠标指针在地球表面的位置。通常使用 scene.pick 函 数来执行鼠标拾取。这个方法返回一个包含有关拾取位置和被选对象的信息的 对象。你可以使用以下代码示例来执行鼠标拾取:

键盘拾取(Keyboard Picking):类似于鼠标拾取,你还可以使用键盘事件来
触发拾取操作。这通常用于处理键盘快捷键,以选择或操作场景中的对象。
空间拾取(Space Picking):空间拾取允许你在 3D 空间中选择对象,而不仅
仅是地球表面。你可以使用 scene.pickPosition 方法来执行空间拾取。这允许
你在地球表面之上或以下选择对象。

 

图元拾取(Primitive Picking):你还可以通过操作 Cesium 中的图元对象来实
现拾取。图元是可渲染的 3D 对象,你可以将它们添加到场景中并监听事件以
执行拾取操作。
创建图元:首先,你需要创建一个或多个图元并将它们添加到 Cesium 的场景
中。这可以通过使用 Cesium 提供的不同类型的图元类来完成,如
Cesium.PointPrimitive, Cesium.Model, Cesium.Polyline, 等等。这些图元可以
包含你要在地球上显示的内容。

监听拾取事件:接下来,你需要为场景添加一个事件监听器,以便在用户与图
元交互时执行拾取操作。通常,你会监听鼠标点击事件或键盘事件来触发拾
取。

上述代码中,我们监听了左击事件(LEFT_CLICK),但你可以根据需要选择不
同的事件类型。
处理拾取结果:当拾取成功时,viewer.scene.pick 将返回一个包含有关拾取结
果的对象。你可以根据拾取结果来执行相关操作,如查看图元的属性、更改外
观或执行其他操作。

通过以上步骤,你可以创建图元、监听拾取事件,并根据用户的交互来执行相
应的操作。这使得你能够实现与地图上的图元对象的高度交互性。请注意,不
同类型的图元可能会有不同的属性和方法可供使用,你可以根据你的具体需求
来处理拾取结果。
这些是 Cesium 中一些常见的拾取坐标的方式。你可以根据你的应用需求选择
合适的拾取方法来与地图上的对象进行交互。根据你的具体情况,还可以进一
步定制拾取操作以实现更复杂的交互。

2、1TB 级别的数据加载到 Cesium 中如何在浏览器上显示


将 1TB 级别的数据加载到 Cesium 中并在浏览器上显示需要经过一系列复杂的数据处理和性能优化步骤。以下是一般的操作流程和浏览器优化策略:
1. 数据处理和准备
在加载大规模数据之前,需要进行数据处理和准备,以减小数据量、提高加载性能,以及将数据转化为 Cesium 支持的格式。以下是一些可能需要考虑的数据处理步骤:数据分块化:将数据分成多个块,根据用户视图范围动态加载可见数据。
▪ 数据格式:使用 Cesium 支持的数据格式,例如 3D Tiles、glTF、Terrain Tiles、PointCloud 格式等,以减小文件大小。
▪ 数据索引:在数据中建立索引以便快速访问和查询数据。
▪ 数据压缩:对数据进行压缩以减小传输和加载时间。
▪ LOD 策略:对于多分辨率数据,实现 LOD 策略,只加载合适分辨率的数据。
2. 服务器端优化
在服务器端,你需要进行以下优化操作:
▪ 启用 Gzip 压缩:配置服务器以使用 Gzip 或 Brotli 等压缩算法来减小数据传输大小。
▪ HTTP 缓存:使用 HTTP 缓存头来缓存数据,以减少重复加载。
▪ 分布式存储:如果可能,将数据存储在分布式存储系统中,以提高数据访问速度。
3. 数据加载策略
对于 1TB 级别的数据,必须采用适当的数据加载策略,以确保浏览器不会因为过大的数据而崩溃或变得非常缓慢。以下是一些加载策略:
▪ 分块加载:只加载用户视图范围内的数据块,可以使用 Cesium 的Tileset 来实现。
▪ Web Workers:利用 Web Workers 将数据加载和处理分离到后台线程,以防止阻塞主线程。
▪ Streaming:尝试流式加载数据,以便在需要时逐步加载数据。
4. 数据可视化和交互
一旦数据加载到 Cesium 中,你需要考虑如何可视化和交互,包括如何呈现大规模的数据以及如何处理用户的查询和拾取操作。这可能需要:
▪ 数据过滤:实现数据过滤,以根据用户需求动态显示或隐藏部分数据。
▪ Level of Detail (LOD):对于多分辨率数据,使用 LOD 策略以降低细节级别,提高性能。
▪ GPU 加速:使用 WebGL 和 GPU 来加速渲染和处理大规模数据。
▪ 数据聚合:对于密集数据,可以考虑聚合数据以减少可视化的复杂性。
5. 浏览器优化
在浏览器端,可以采取以下优化策略:

▪ 使用最新的浏览器:确保用户使用支持 WebGL 2.0 和 WebAssembly 的
最新浏览器版本,以获得更好的性能。
▪ WebGL 性能:使用 WebGL 性能分析工具来监测和优化 3D 场景的性能。
▪ 内存管理:谨慎管理内存,确保在加载大规模数据时不会超出浏览器的内存限制。
▪ 异步加载:使用异步加载资源,以避免阻塞页面渲染。
▪ 用户体验优化:提供用户友好的加载进度条和提示,以改善用户体验。
请注意,处理和显示 1TB 级别的数据在 Web 浏览器中是一个复杂的任务,可能需要深入的性能优化和分布式计算。最终的优化策略会根据你的数据类型、用户需求和项目预算而有所不同。建议在开始项目之前进行详细的性能分析和规划,以确保最终的应用程序能够如预期般运行。

3、VUE 中兄弟组件之间如何传值


在 Vue.js 中,兄弟组件之间传递数据可以通过以下几种方法来实现:
1. 使用事件总线(Event Bus):通过创建一个事件总线实例,兄弟组件可以通过该实例来进行通信。这是一种非常灵活的方法,适用于复杂的组件通信需求。
2. 使用 Vuex:Vuex 是 Vue.js 的官方状态管理库,它可以用于在组件之间共享状态。虽然主要用于管理全局状态,但也可以用于兄弟组件之间的通信。
3. 通过父组件传递属性:兄弟组件可以共享一个共同的父组件,父组件可以通过 props 将数据传递给子组件,从而间接地传递给其他子组件。
4. 使用自定义事件:子组件可以触发自定义事件,而父组件可以监听这些事件来获取数据。
下面我将演示一种通过自定义事件来实现兄弟组件之间数据传递的方法。
示例代码:
假设有两个兄弟组件 SiblingA 和 SiblingB,我们要在它们之间传递数据。
1. 创建一个名为 EventBus.js 的事件总线文件:

2. 在 SiblingA 组件中触发自定义事件来传递数据:

3. 在 SiblingB 组件中监听自定义事件来接收数据:

这里的关键点是我们在 SiblingA 组件中使用 EventBus.$emit 来触发自定义事件,然后在 SiblingB 组件中使用 EventBus.$on 来监听同一个自定义事件,并在事件触发时接收数据。这样,数据就可以在兄弟组件之间传递了。这是一种简单的方法来实现兄弟组件之间的数据传递。但请注意,对于大型应用程序,使用 Vuex 或通过父组件传递属性可能更有利于管理状态和数据传递。
4、LocalStorage、cookie、sessionStorage 之间的区别
LocalStorage、Cookies 和 SessionStorage 都是在 Web 开发中用于存储数据的客户端存储解决方案,但它们在使用方式、存储持久性和用途上有一些关键区别。下面是它们之间的区别以及各自的优缺点:
Cookies(HTTP Cookies):
▪ 持久性: Cookies 可以设置持久性,即可以在指定的过期时间之前一直存在。
▪ 存储容量: Cookies 的存储容量通常较小,约为 4KB 左右。
▪ 访问: 可以通过 JavaScript 和后端服务器来访问和设置 Cookies。
▪ 安全性: Cookies 的安全性较低,因为它们可以被客户端修改,所以不适合存储敏感信息。
▪ 用途: Cookies 通常用于存储用户身份验证令牌、会话标识、跟踪用户行为等。
LocalStorage:
▪ 持久性: LocalStorage 是持久性的,数据不会在浏览器关闭后消失。
▪ 存储容量: LocalStorage 的存储容量通常较大,一般为 5-10MB 左右
(不同浏览器可能有不同限制)。
▪ 访问: 可以通过 JavaScript 来访问和设置 LocalStorage。
▪ 安全性: LocalStorage 的安全性较高,因为它不容易被客户端修改。
▪ 用途: LocalStorage 通常用于长期存储用户首选项、应用程序设置等。
SessionStorage:
▪ 持久性: SessionStorage 是会话级别的,数据在浏览器会话结束后会被清除。
▪ 存储容量: SessionStorage 的存储容量通常与 LocalStorage 相似,也是 5-10MB 左右。
▪ 访问: 可以通过 JavaScript 来访问和设置 SessionStorage。
▪ 安全性: SessionStorage 的安全性较高,因为它不容易被客户端修改。
▪ 用途: SessionStorage 通常用于在会话期间临时存储数据,例如在不同页面之间共享数据。

各自的优缺点:
▪ Cookies:
o 优点:持久性、与服务器通信、广泛支持。
o 缺点:容量小、安全性差、会影响 HTTP 请求性能。
▪ LocalStorage:
o 优点:持久性、较大的容量、安全性好。
o 缺点:仅在单个浏览器窗口/标签页中可用。
▪ SessionStorage:
o 优点:临时存储、较大的容量、安全性好。
o 缺点:仅在会话期间可用,关闭浏览器会话后数据丢失。
在日常中的使用情况:
在日常 Web 开发中,LocalStorage 和 SessionStorage 通常更常见,因为它们提供了比 Cookies 更大的存储容量和更好的安全性,而且不会在每个 HTTP 请求中自动发送到服务器,从而减少了带宽开销。LocalStorage 通常用于长期存
储用户首选项、缓存应用程序数据等。SessionStorage 则适用于在单个浏览器会话期间共享数据,例如在不同页面之间传递数据。
Cookies 通常用于存储身份验证令牌、会话标识和跟踪用户行为等需要在客户端和服务器之间传递的信息,但由于安全性较差,所以不适合存储敏感信息。
总的来说,选择哪种客户端存储方式取决于具体的需求和安全考虑。


5、Cesium 中如何处理建筑分层单体化


在 Cesium 中处理建筑分层单体化,即在一栋高层建筑中分割并展示不同楼层的内部结构,需要使用 3D 模型和一些技巧来实现。下面是一个简单的示例,
演示如何处理建筑分层单体化。
注意: 这是一个高级的 Cesium 应用场景,需要合适的 3D 建模和数据准备。
以下示例仅用于演示概念,实际实现可能更复杂。
1. 创建 3D 模型: 首先,你需要创建一个包含不同楼层内部结构的 3D 建模。这可以使用 3D 建模软件(例如 Blender、SketchUp、3ds Max 等)来完成。确保每个楼层都是独立的 3D 对象,并且模型中包含了每个楼层的几何形状和纹理。
2. 导出 3D 模型: 将建模好的 3D 建筑导出为支持的 3D 文件格式,例如 glTF或 3D Tiles。
3. 设置 Cesium 场景: 在 Cesium 中,你需要创建一个场景,并添加一个 3D模型或 tileset。

4. 创建楼层选择器: 为了允许用户选择不同楼层,你可以创建一个楼层选择器界面,例如一个下拉菜单或按钮列表。
5. 控制楼层可见性: 当用户选择不同楼层时,通过 Cesium 的 API 来控制不同楼层的可见性。这可以通过设置 show 属性来实现。

上述代码中,当用户选择不同的楼层时,通过遍历模型的子元素并根据用户选
择设置不同楼层的可见性。这是一个简化的示例,实际应用中可能需要更复杂的逻辑和用户界面来处理建筑的分层单体化。建筑分层单体化通常需要详细的 3D 建模、数据标注和前端开发工作,以确保用户能够方便地浏览建筑的不同楼层。Cesium 提供了强大的 3D 渲染和交互功能,可以用于实现这种类型的应用。


6、openlayer 与 leaflet 之间的区别,优势


OpenLayers 和 Leaflet 都是流行的开源 JavaScript 库,用于创建互动性地图应用程序。它们都提供了强大的地图渲染和交互功能,但在某些方面有一些区别和优势。下面是一个超详细的介绍,比较了 OpenLayers 和 Leaflet 之间的区别和各自的优势:

上述代码中,当用户选择不同的楼层时,通过遍历模型的子元素并根据用户选择设置不同楼层的可见性。
这是一个简化的示例,实际应用中可能需要更复杂的逻辑和用户界面来处理建筑的分层单体化。建筑分层单体化通常需要详细的 3D 建模、数据标注和前端开发工作,以确保用户能够方便地浏览建筑的不同楼层。Cesium 提供了强大的 3D 渲染和交互功能,可以用于实现这种类型的应用。

1. 历史和成熟度:
▪ OpenLayers: OpenLayers 是一个相对较早的开源地图库,于 2006 年首次发布。它有着长期的发展历史和广泛的用户社区,已经经历了多个版本迭代。
▪ Leaflet: Leaflet 相对较新,于 2011 年首次发布,但迅速获得了广泛的认可和用户社区支持。
2. 复杂性和学习曲线:
▪ OpenLayers: OpenLayers 在某些方面更复杂,有更多的功能和配置选项,这也导致了较陡峭的学习曲线。它更适合需要高度自定义和复杂地图应用的开发者。
▪ Leaflet: Leaflet 的设计更加简单和直观,具有较低的学习曲线,因此更适合初学者和快速开发。它的 API 设计注重易用性,但仍提供了强大的功能。
3. 社区和生态系统:
▪ OpenLayers: OpenLayers 拥有庞大的社区和插件生态系统,使得可以找到各种扩展和插件来满足不同需求。它也有更多的第三方资源和教程。
▪ Leaflet: Leaflet 虽然社区相对较小,但在可用插件和扩展方面也有不少选择。由于其简单性,一些开发者更喜欢自己编写自定义代码,而不是依赖于插件。
4. 性能和渲染:
▪ OpenLayers: OpenLayers 在处理大规模数据集时通常表现得更出色,因为它支持 WebGL 渲染,可以加速地图渲染和交互。
▪ Leaflet: Leaflet 的渲染性能也很好,但对于大规模数据集,可能会略逊于 OpenLayers。但对于大多数应用程序而言,性能足够了。
5. 样式和外观:
▪ OpenLayers: OpenLayers 提供了更多样式和外观的自定义选项,使开发者可以更精细地控制地图的外观。
▪ Leaflet: Leaflet 也支持样式自定义,但通常要求更多的 CSS 技巧来实现复杂的外观。
6. 插件和扩展:
▪ OpenLayers: OpenLayers 拥有丰富的插件和扩展,允许你轻松添加各种功能,如地理编码、地图编辑和复杂的地图分析。

▪ Leaflet: Leaflet 也有一些插件,但数量和多样性相对较少。不过,你可以编写自定义代码来满足特定需求。
7. 项目目标:
▪ OpenLayers: OpenLayers 的目标是提供一个强大的、可高度自定义的地图库,适用于复杂的地理信息系统(GIS)应用。
▪ Leaflet: Leaflet 的目标是提供一个轻量级、易于使用的地图库,适用于快速开发交互性地图应用。
总的来说,选择使用 OpenLayers 还是 Leaflet 取决于你的项目需求和你的开发经验。如果你需要处理大规模数据、复杂的地理信息系统或需要高度自定义的地图外观和行为,OpenLayers 可能更适合。如果你是初学者、需要快速构建简单地图应用或希望简化开发流程,Leaflet 可能更适合你。在某些情况下,你还可以考虑结合使用它们,以充分利用各自的优势。

7、Threejs 中如何做 BIM 分层分块展示


在 Three.js 中展示 BIM(建筑信息模型)的分层分块,需要一些复杂的 3D 建
模和渲染技巧。以下是一个一般性的步骤:
1. 获取 BIM 数据: 首先,你需要获取 BIM 数据,通常以某种标准格式(如 IFC)提供。你可以使用 BIM 软件(如 Revit、AutoCAD)导出BIM 模型为合适的格式,然后将数据导入到你的 Three.js 项目中。
2. 加载 BIM 数据: 使用 Three.js 加载 BIM 数据,通常需要解析 BIM 文件格式并将其转换为 Three.js 场景中的对象。你可能需要寻找适当的库或工具来帮助你解析和加载 BIM 数据。
3. 分层和分块: 一旦加载了 BIM 数据,你可以根据需要对模型进行分层和分块。这通常涉及到遍历 BIM 模型的数据结构,将不同的部分分组到不同的 Three.js 对象或组中。例如,你可以将每个楼层作为一个 Three.js组,每个建筑元素(如墙、柱子、窗户等)作为另一个组。
4. 设置显示和隐藏: 为了实现分层分块的展示,你需要提供用户界面或交互方式,以允许用户选择要显示或隐藏的特定层或块。当用户进行选择时,你可以通过设置相关对象或组的可见性来实现显示或隐藏。
以下是一个伪代码示例,演示如何在 Three.js 中实现基本的分层分块展示:

这只是一个基本示例,你需要根据你的 BIM 数据和项目需求进行定制。在实际
项目中,你可能还需要考虑光照、相机控制、用户界面设计等方面的更多细
节。为了更好地理解和实现 BIM 分层分块展示,你可能还需要深入研究 BIM 数
据格式和 Three.js 的高级用法。

篇幅有限,更多webgis面试题可找我分享~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/769371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重载与覆写介绍

方法重载(Overloading) 方法重载是指在同一个类中定义多个方法,它们具有相同的名字但参数列表不同。这是通过改变参数的数量、类型的种类或次序来实现的。例如: public class OverloadingExample { // 方法重载可以通过参数的数…

# Sharding-JDBC从入门到精通(8)- 综合案例(一)数据库设计搭建与分片策略配置

Sharding-JDBC从入门到精通(8)- 综合案例(一)数据库设计搭建与分片策略配置 一、Sharding-JDBC 综合案例-数据库设计 1、案例 需求描述:本案例实现功能如下: 1、添加商品2、商品分页查询3、商品统计 2、数据库设计…

qtreewidget 美化,htmlcss和qss 不是一个概念!已解决

这种样式的美化, 能气死个人,css 一个单词搞定,非要 在qss中。多少个单词不知道了。 m_tree_widget->setStyleSheet("QTreeView{background:transparent; selection-background-color:transparent;}""QTreeView::branch{b…

求函数最小值-torch版

目标:torch实现下面链接中的梯度下降法 先计算 的导函数 ,然后计算导函数 在处的梯度 (导数) 让 沿着 梯度的负方向移动, 自变量 的更新过程如下 torch代码实现如下 import torchx torch.tensor([7.5],requires_gradTrue) # print(x.gr…

<电力行业> - 《第16课:电力领域(二)》

3 制造 3.1 电气制造厂 发电厂发电需要发电机,变电站升压降压需要变压器,输电线路输送电能需要电缆,这些主要电气设备的制造商,就是电力设备厂家。 电气设备制造是电力领域市场最基础也是最开放的领域,电力行业内最…

qt 滚动区域简单实验

1.概要 有些时候,想用一个有限的区域显示更多的内容,且内容不固定用滚动区域控件是一个不错的选择,我今天就用一个图片简单的实验一下。 2.代码(关键代码) #include "widget.h" #include "ui_widget…

法国工程师IMT联盟 密码学及其应用 2023年期末考试题

1 在 Unix 下的安全性 (30 分钟) 1.1 问题 1 1.1.1 问题 我们注意constat到通过 SMTP 服务器发送“假”电子邮件(垃圾邮件)相对容易。越来越常见的做法是在 SMTP 连接之上部署dployer TLS 协议protocole(即 SMTPS)。这解决了垃圾…

行为驱动开发(BDD):提升软件质量的新方法

目录 前言1 行为驱动开发的概述1.1 BDD 的起源和发展1.2 BDD 的核心概念 2 BDD 的优势2.1 提高测试的可读性和理解性2.2 增强团队协作2.3 提高软件质量 3 BDD 的实施方法3.1 定义用户故事3.2 编写行为测试3.3 开发和验证3.4 持续集成和反馈 4 BDD 工具和实践4.1 常用的 BDD 工具…

算法day1 两数之和 两数相加 冒泡排序 快速排序

两数之和 最简单的思维方式肯定是去凑两个数,两个数的和是目标值就ok。这里两遍for循环解决。 两数相加 敲了一晚上哈哈,结果超过int范围捏,难受捏。 public class Test2 {public static void main(String[] args) { // ListNode l1 …

矩阵优化递推式子

题目链接 对于f(n)3f(n−1)2f(n−2)2这种式子,先将右边拥有的项竖着列出来,不包括系数,再将这个竖列的下一项写出来,然后将右边的每一项按照左边顺序的等式写出来,然后我们将等式右边只保留系数,那么这些系…

【Java EE】Spring Boot配置文件

Spring Boot配置文件 一、配置文件的分类 一共有三类,分别是 properties, yml, yaml,其中properties相当于是老版,yml是yaml的缩写,这两个相当于新版。 二、配置文件的语法 1. properties 语法的构成是以"." 为分隔…

【微服务网关——服务发现】

1.服务发现 1.1 介绍 服务发现是指用注册中心来记录服务信息,以便其他服务快速查找已注册服务服务发现分类: 客户端服务发现服务端服务发现 1.2 客户端服务发现 客户端服务发现(Client-side Service Discovery)是一种微服务架构中的模式…

nginx的LNMP构建+discuz论坛

一、LNMP: L:linux 操作系统 N:nginx前端页面的web服务 P:PHP,是一种开发动态页面的编程语言,解析动态页面,起到中间件的作用(在nginx和数据库的中间),在中…

该文件没有与之关联的程序来执行该操作,请安装应用,若已经安装应用,请在‘默认应用设置’页面中创建关联。

作为一个喜欢折腾桌面外观的人,我发现桌面上的快捷方式图标都有一个小箭头。于是,我按照网上的方法在注册表中删除了 IsShortcut 键。结果,重启后任务栏上的图标点击时出现了提示:“该文件没有与之关联的程序来执行该操作,请安装应用,若已经安装应用,请在‘默认应用设置…

UnityUGUI之三 Text

富文本 常用语法&#xff1a; 1.加粗 <b> text </b> 2.斜体 <i> text </i> 3.尺寸 <size?> text </size> 4.颜色 <color#ff0000> text </color>

html+js+css美观好看的动态404界面

中间的那一段话&#xff08;root开头的那一句&#xff09;是逐字输出的 那段话显示完后&#xff0c;自动显示超大号字体404 来都来了点个赞&#xff0c;关注一下呗&#x1f604;&#xff0c;本人发誓&#xff1a;你关注我&#xff0c;马上关注你 界面 源码在图片下面…

E1696 无法打开 源 文件 “point.h“

一段时间没碰vs2022突然导入一个项目就出现下面错误 在网上查了很多办法&#xff0c;都没什么有用。 试了试&#xff0c;相对路径可以解决。 但是每次都要用相对路径太麻烦了。 又试了试&#xff0c;发现还是硬件问题&#xff0c;就像摩托长期不开等到突然想开的时候就死活打…

通信软件开发之业务知识:PON口割接什么意思?

一 PON口割接&#xff08;原创总结&#xff09; 在通信领域&#xff0c;PON口割接指的是对无源光网络&#xff08;Passive Optical Network&#xff0c;PON&#xff09;端口进行的切换或调整操作。简单来说&#xff0c;就是对光纤网络中的某个端口进行重新连接或重新分配&…

2024鸿翼加速推进数据要素生产力,“五驾马车”再启新鸿图

过去的2023年&#xff0c;在大家逐步走出3年疫情&#xff0c;对经济复苏的美好期待中&#xff0c;一路“高开低走”的市场态势&#xff0c;相信让许多的数字化从业者感受到了业务的沮丧和寒意。 但是&#xff0c;即便整个行业受经济大环境影响&#xff0c;鸿翼依旧逆势取得了连…

UE5 04-重新加载当前场景

给关卡加一个淡出的效果 给关卡加一个淡入的效果, 这个最好放置在Player 上,这样切关卡依然有这个效果