第5章 VR开发-5.6 操作实例2:地产行业应用-虚拟样板间_第1页
第5章 VR开发-5.6 操作实例2:地产行业应用-虚拟样板间_第2页
第5章 VR开发-5.6 操作实例2:地产行业应用-虚拟样板间_第3页
第5章 VR开发-5.6 操作实例2:地产行业应用-虚拟样板间_第4页
第5章 VR开发-5.6 操作实例2:地产行业应用-虚拟样板间_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章VR开发

5.6操作实例2:地产行业应用——虚拟样板间

虚拟样板间以及类似的应用在房地产行业中广受欢迎,得到越来越多公司的青睐。利用虚拟现实技术,可以让参观者突破空间和时间限制,在原地就能全方位体验到所有房型、楼层、周边环境等各种信息,甚至可以观察白天和晚上不同时间段的房屋效果,还能在同一套房子中改变装修风格、挑选不同装修材料和家具等。

本节中选择NibiruVR系统平台,实现虚拟样板间的参观和修改家具这两项功能。通过学习这两项核心功能的实现过程,读者能体会此类项目的开发特点。(1)选择样板间模型。本节选用Unity的AssetStore中的免费资源包SimpleHomeStuff。它里面的模型虽然简单,但是对学习来说已经足够了,SimpleHomeStuff资源如图所示。(2)新建Unity工程,导入下载的SimpleHomeStuff资源包,打开其中的Demo场景;再导入NibiruVR_SDK_Unity开发包。(3)删除Demo场景中原有的MainCamera,把NVR/Prefabs目录下的MainCamera和NvrViewerMain这两个预设体拖入场景,完成初始设置。(4)适当提高MainCamera预设体的高度,使其大致达到正常身高的人的眼睛的高度,并将其摆放到房间中合适的位置。(5)房间中的物体,有些已经有了碰撞器,而有些则没有,例如,沙发、桌椅等。需要给这些家具添加碰撞器,这样才能防止用户移动时发生“穿越”效果;同理,对MainCamera预设体,也需要添加一个碰撞器,这里添加的是CapsuleCollider,并添加一个刚体组件。

此处的碰撞检测效果并不是必需的,市场上有些虚拟样板间的应用就没有这种限制,允许发生“穿越”效果。这需要根据具体的客户要求来决定。(6)实现房间内的漫游功能。这里需要注意的一点是,VR一体机不同于HTCVIVE,因为没有追踪头显位置的功能,所以不能感知用户在虚拟空间中的方位,只能通过在场景中移动MainCamera物体来模拟用户在场景中的移动。所以用VR一体机实现漫游功能,实际上就是移动MainCamera。

漫游功能有两种形式,一种是按固定路径移动,一种是自由移动。本节选择第二种形式。自由移动是通过VR头显上的方向箭头来实现的。为了能在计算机上直接运行,需要先对NibiruSDK的一些脚本进行修改。

具体方法是,在工程中的NVR/Scripts目录下找到NvrViewer.cs脚本并打开,添加下面这段代码到DispatchEvents()函数中,上页的代码实现了在DispatchEvents()函数中分发键盘的按键事件。分发出来的事件,会通过一系列的传递,最终在一个叫作ButtonListener.cs的脚本里得到处理。在工程中找到这个脚本,修改部分如下:将修改完的ButtonListener.cs脚本拖到场景中任意一个物体上,作为一个组件使用。然后就可以运行场景,使用键盘的上、下方向键来控制摄像机的移动,实现自由漫游的功能。(7)实现改变家具属性的功能,这里以改变沙发的颜色为例。此功能的用户操作流程是:用视线注视沙发→按OK键弹出颜色选项的UI界面→注视某个颜色选项,按OK键改变沙发的颜色→再次注视沙发,按OK键关闭颜色选项的UI界面。(8)制作UI界面。选择Sofa物体,在其下新建一个UI画布Canvas,在Canvas下新建一个Panel元素,在Panel下再新建两个Image元素,分别改名为red和yellow,Sofa物体下的UI元素如左图所示,即将它们的颜色属性分别改为红色和黄色。修改Canvas下Canvas组件的RenderMode属性为WorldSpace,并调整整个Canvas以及各个UI元素的大小和位置,UI元素最终的样子如右图所示,使UI元素处于Sofa物体的上方。(9)视线注视的设置方法和5.3.3小节中的方法类似,也是将GazeInputModule组件添加到一个新建的空物体上,然后给Sofa物体和red、yellow两个UI元素都添加BoxCollider碰撞器以及EventTrigger组件,使它们能被射线感知到。(10)新建脚本showUI.cs,将其作为组件赋予Sofa物体。(11)将Canvas物体赋予公共变量ColorUI,如图所示。(12)在Sofa物体的EventTrigger组件中,单击“AddNewEventType”按钮添加PointerDown事件,选择其处理函数为showUI.cs脚本中的showAndHide_UI()函数,EventTrigger中的showAndHide_UI()事件处理函数如图所示。

至此,用视线控制UI元素的显示就完成了。(13)新建脚本setColor.cs,将其作为组件赋予red和yellow两个ImageUI元素。(14)在red和yellow两个UI元素的SetColor组件上,将Sofa物体赋予Target变量,Target公共变量的赋值如图所示。(15)在red和yellow两个UI元素的EventTrigger组件中,添加PointerDown事件,选择其处理函数为setColor脚本中的Set_Color()函数,EventTrigger中的Set_Color()事件处理函数如图所示。(16)至此全部功能实现完毕,运行场

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论