好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

谷歌VRAPP实战UNITY与CARDBOARDAPP基础实践(三).docx

32页
  • 卖家[上传人]:汽***
  • 文档编号:489113381
  • 上传时间:2023-01-31
  • 文档格式:DOCX
  • 文档大小:8.09MB
  • / 32 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 谷歌VR APP实战!UNITY与CARDBOARD APP基础实践(三)今天的VR实战是腾讯ISUX高级交互家设计师@C7210 亲自写的,教你借用免费的Unity资源,搭起3D场景,放上3D对象,并使用Google提供的SDK组件模拟VR视野这个教程最好玩的地方是,如果有兴趣打包成App放到iPhone当中,便可以直接塞到Cardboard里面以真实VR的方式进行体验了我们接下来将要一起捣鼓的东西,简单描述一下大约就是借来一些免费的Unity资源,搭起3D场景,在里面放上一两个没有任何意义的3D对象,使用Google提供的SDK组件模拟VR视野,当视线聚焦在3D对象上时,VR准星会发生形变,同时3D对象会改变外观,暗示互动性;而通过鼠标模拟Cardboard按钮点击事件还可以使3D对象产生位移大致就是这样如果有兴趣打包成app放到iPhone当中,便可以直接塞到Cardboard里面以真实VR的方式进行体验了提炼一下具体的的实践要点,包包括:o 向Unity项项目中导入GGooglee VR UUnity SDKo 在Unity Assett Storre中浏览并并下载免费资资源包。

      o 调用Googlle VR相相关组件,构构建VR模式o 向场景(Sceene)中添添加交互对象象o 编写代码,制定定凝视交互的的规则o 构建事件系统及及触发规则o 通过Xcodee将VR appp部署到iPhhone当中中需要准备的原料料o Unity:下下载并安装最最新的免费个个人版本o Google VR Unnity SSDK:下载载并解压,其其中包含了SSDK以及Googgle官方提提供范例项目目o Cardboaard:Googlle Carrdboarrd或其他同同类设备均可可o Xcode:用用于将最终打打包的appp部署到iPhhone当中中体量庞大大,如果不准准备实际部署署也可忽略布置3D环境与与交互组件打开Unityy,新建3D项目:点击菜单栏中的的Assetts > IImportt Packkage >> Custtom Paackagee,选择之前解解压缩的Gooogle VVR Uniity SDDK当中的GooogleVRRForUnnity.uunityppackagge:在接下来弹出的的Imporrt Uniity Paackagee对话框中,确确保所有资源源都有被勾选选,然后点击击Imporrt按钮:导入完成后,PProjecct面板当中中的资源路径径看上去应该该是这样的::Google VR Unnity SSDK布置完完毕,下面我我们来找一些些现成的环境境素材。

      点击击Assett Storre面板,在在内嵌页面的右侧侧导航当中找找到3D MModelss > Ennviromments,接接下来可以筛筛选出所有的的免费模型,找找到自己喜欢欢的,确认资资源中包含..unityy场景文件,例例如下图当中中我所选用的的Moon Landsscape资资源包所提供供的Demoo Scenne(接下来来所涉及到的的相关文件操操作均以Mooon Laandscaape为例):建议在这里挂好好VPN,然后后点击内嵌页页中的Downlload或Imporrt(如果之之前已经下载载过)按钮下载载完成后,在在弹出的Immport Unityy Packkage对话话框中,确保保所有资源都都有被勾选,然然后点击Immport按按钮:导入完成后,在在Projeect面板的的Assetts管理器当当中找到刚刚刚下载的资源源包里的deemo场景文文件:双击打开该文件件,Scenne面板当中中会出现deemo场景,我我们接下来就就在这里工作作:想要置身于3DD环境当中以以第一人称视视角观察世界界,我们需要要“眼睛”,即Unitty提供的Cammera控件件新建的空空白场景当中中不包含任何何Camerra控件,我我们需要自己己来添加。

      点点击菜单栏当当中的Gamme Objject >> Cameera:确保新添加的CCameraa控件被选中中(如果没有,可可以在左侧HHierarrchy面板板当中点选)),在右侧Innspecttor面板当当中点击Taag下拉菜单单,选择“MainCCameraa”:由于Moon Landsscape场场景当中的地地形会高出水水平面,所以以我们需要调调整Cameera的位置置,使其位于于地面以上在在“Postiion”当中,为“YY”输入恰当当的数值,譬譬如“25”((或任何能够够确保Cammera垂直直方向的位置置略微高出地地面的数值)):同样在Insppectorr面板当中,点点击底部的AAdd Coomponeent按钮,输输入关键词“PPhysiccs”,点选选“Physsics RRaycasster”((使Camerra视线可以以与3D对象进行行互动):一番设置之后,Camera控件的Inspector面板看上去应该是这样的:接下来我们需要要添加Gooogle VVR相关组件件在Prooject面面板的资源列列表中找到AAssetss > GooogleVVR > PPrefabbs文件夹,将将其中的GvvrViewwerMaiin拖放到左左侧的Hieerarchhy面板中(这一步骤相相当于为Unnity项目目添加Gooogle VVR模式,包包括视觉样式式及互动机制制等等):确保GvrViiewerMMain被选选中,在右侧侧Inspeector面面板当中调整整“Screeen Siize”和“Viewwer Tyype”的值值,选择需要要部署的机型号及Caardboaard款式::接下来我们要向向Camerra视野当中中添加准星,用用于接下来的的凝视交互。

      在在Projeect面板的的资源列表中中找到Asssets >> GooggleVR > Preefabs > UI文文件夹,将其其中的GvrrReticcle拖放到到左侧Hieerarchhy面板中的的Camerra控件上,使使其成为Caamera的的子元素:OK我们来预览览一下当前场场景的实际效效果点击顶顶部的Plaay按钮,界界面会自动切切换到Gamme模式夜夜空、月球表表面、Carrdboarrd分屏、准准星,还不坏坏(此时可以按按住键盘上的的alt或contrrol键,同同时移动鼠标标,测试一下下主视角的移移动方式):再次点击顶部的的Play按钮钮,退出Gaame模式接接下来我们要要向场景当中中添加互动对对象立方体体(Cubee)是Unityy当中最基础最简单单的3D对象 – 点击菜菜单栏当中的的Game Objecct > 33D Objject >> Cubee,一个立方方体便会被添添加到场景当当中:我们需要将立方方体置于Caamera默默认视线的前前方(选中Cameera控件即即可查看其视视野方向及范范围,便于确确定“前方”的具体位置置)此外,冷冷寂的月球环环境让我想到到了《20001太空漫游游》当中的一一些情景(斯坦利·库布里克指指导,19668年的鸿篇篇巨制,有谁谁看过没?)),于是我希希望将立方体体修改为电影影中的黑石碑碑样式。

      选中中Cube,在在右侧Insspectoor面板当中中调整“Poositioon”和“Scalle”的值::调整之后Cubbe的形状与与位置大致如如下图所示::在这个简单的范范例当中,33D环境及交交互组件就是是这些下面面我们要做一一些代码工作作了编写代码,设定定交互规则在Assetss面板当中点点击鼠标右键键,选择Crreate > C# Scrippt,将新添添加的代码文文件命名为“IInteraactionns”:双击该文件,UUnity会会自动加载MMonoDeevelopp代码编辑器器清除掉文文件当中自带带的全部内容容,替换为以以下代码: using UnityyEnginne; using Systeem.Colllectiions;public classs Inteeractiions :: MonooBehavviour {public void SetGaazedAtt(bool gazeddAt) {{ GetCommponennt().mateerial..colorr = gazzedAt ? Collor.reed : Colorr.blacck; }public void MoveUUp() {{ transfform.ppositiion +== new Vectoor3 (00f, 1ff, 0f)); }void Sttart()) { SetGazzedAt((falsee); }public void OnGazzeEnteer() {{ SetGazzedAt((true)); }public void OnGazzeExitt() { SetGazzedAt((falsee); }public void OnGazzeTriggger()) { MoveUpp(); }}代码本身并不复复杂,简单解解释一下逻辑辑。

      我们在IInteraactionns类当中总总共声明了66个函数:o SetGazeeAt():根据传传入的条件,判判断交互对象象(譬如立方体体)应该呈现出出红色还是黑黑色外观o MoveUp(():将交互互对象沿Y轴向上移动动一个单位的的距离o Start()):调用特定定的功能进行行初始化设定定(SetGaazeAt,参参数为“faalse”))o OnGazeEEnter(():当准星星聚焦于交互互对象时,调调用特定的功功能(SetGaazeAt,参参数为“trrue”)o OnGazeEExit()):当准星不不再聚焦于交交互对象时,调调用特定的功功能(SetGaazeAt,参参数为“faalse”))o OnGazeTTriggeer():准星聚聚焦于交互对对象时,用户户按压Carrdboarrd上的按钮钮,则调用特特定的功能((MoveUUp)构建事件系统代码搞定,接下下来需要将事事件处理系统统添加到项目目当中,使交交互规则可以以在视线与交交互对象之间间运作起来点点击菜单栏当当中的Gamme Objject >> UI >> Evennt Sysstem,将将其添加到左左侧的Hieerarchhy面板中::确保Eventt Systtem处于选选中态,在右右侧Insppectorr面板当中点点击底部的AAdd Coomponeent按钮,输输入关键词“GGaze”,点点选“GazeIInputMModulee”,向事件系统中中添加基于凝凝视的交互模模组:我们需要提升凝凝视交互规则则的优先级,使使其不会被默默认规则覆盖盖,否则在实实际注视Cuube对象时时,准星的行行为会有异常常。

      点击“GGaze IInput Modulle”标题右右侧的齿轮图图标,在下拉拉列表中选择择“Movee Up”,使使“Gazee Inpuut Moddule”整整体移至“SStandaalone Inputt Moduule”上方方:我们还需要使CCube能够够响应代码定定义的交互事事件规则在在左侧的Hiierarcchy面板中中选中Cubbe对象,在在右侧Insspectoor面板当中中点击底部的的Add CComponnent按钮钮,找到“IInteraactionns”,将代代码添加到CCube。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.