unity如何导出vr项目 vr遇到的问题

  很高兴看到各种全新VR/AR技术設备,工具包和平台的不断涌现但对于开发者来说,这种变化将成为软件功能和业务优先级的噩梦。

  unity如何导出vr项目开发者是如何處理这样丰富多样化,不断变化的众多功能和服务并与此同时实现“创建一次,构建多个”呢在unity如何导出vr项目选择目标平台的能力往往不够精细。unity如何导出vr项目正在努力通过对XR播放器设置和API类的新兴支持来解决其中一些问题但不可避免的是,开发者需要使用更高级別的工具包来满足他们在unity如何导出vr项目项目中定位的实际设备下图说明了开发者在应对多个SDK和高级工具包时所面临的挑战,包括预制件非常有用的脚本组件,着色器和示例场景等等

  在Parkerhill,我们已经开发了许多VR和AR项目和演示作品并且经历过使用不同SDK来为不同设备构建体验的痛苦。因此我们提出了一套适合我们的最佳实践。更好的是我们已经实施了一系列的unity如何导出vr项目编辑器实用程序,并将其莋为Parkerhill BridgeXR软件包在unity如何导出vr项目 Asset Store中发布

  unity如何导出vr项目项目自然划分为不同的场景,可实施游戏的关卡unity如何导出vr项目同时允许你将场景加载到当前主场景。附加场景是将场景模块化地组织为单独对象层的绝佳工具

  我们通常使用附加场景来加载包含camera组件,输入设备和粅理事件处理的设备特定player rig例如,为了保持主场景独立于设备我们可能提供一个包含SteamVR player rig的附加场景,另一个包含Daydream player rig的附加场景然后我们编寫一个场景管理器脚本,并根据实际的目标设备添加相应的player rig场景

  2。 为特定于SDK的预制件使用条件响应对象

  设备SDK包括你在场景中使鼡的预制对象例子包括传送舱,视频播放器环境绘图工具,虚拟角色等等另一个例子是,根据目标设备的不同你可能需要模型的低多边形版本与高多边形版本,因为设备和平台之间的性能和质量要求差别很大你的项目可以根据目标设备而选择相应版本的预制件,並在运行时进行实例化

  3。 应用条件组件以实现特定于SDK的行为

  设备SDK最显著的特征之一是存在可以添加到游戏对象中的组件脚本鉯实现特定的行为。一个常见例子是可交互的具有抓取和突出显示的行为。遗憾的是unity如何导出vr项目不存在有条件地向对象添加组件的簡单方法。

  一种解决方案是将可交互对象的单独版本保存为预制件然后使用上述条件对象技术来将正确的一个添加到场景之中。这樣你将维护同一对象的完全独立版本(每个设备SDK一个)而如果你希望更改原始对象,维护问题就会出现

  unity如何导出vr项目 2018的Variant prefab功能可以提供帮助,支持你定义从其他预制件asset派生的预制件asset你可以将原始游戏对象作为基础预制件,然后使用添加的可交互组件来制作Variant每个SDK一個Variant预制件。你仍然需要为每个目标设备分别使用不同的Variant预制件但至少如果基础对象已被修改,改动将反映在每个Variant中

  在Parkerhill,我们实施叻一个更好的解决方案:Refabs从某种意义上说,Refabs是Variant Prefabs的反面“refab”是可重复使用的组件集合(保存为预制件),可应用于任何游戏对象它们尣许你将行为与对象分开,将其作为一个或多个组件的一组并用作游戏对象模板的组件。

  Refabs的工作方式如下:将组件添加到空白游戏對象并将其另存为预制件。可以使用Refab Loader组件将这组组件添加到任何游戏对象中然后,场景中的对象将只有一个Refab Loader指向要使用的refab同样可复鼡的组件集同样可以添加到其他游戏对象中。

  4 将特定于设备的输入事件映射到应用程序语义事件

  除了player rig,预制件和对象组件之外你还应该分离应用程序与设备相关的输入事件。对于基于画布的UI输入(如按钮)请尝试使用unity如何导出vr项目的标准Event System。

  对于更一般的對象交互(如抓取使用和投掷),特定于设备的SDK可以直接管理用户的双手或输入控制器光线投射和触觉反馈。

  要将应用程序与SDK分離请不要在应用程序中使用特定于工具包的事件。你应该将特定于工具包的事件映射到应用程序语义事件语义事件是在应用程序情景Φ具有意义的事件。例如你的应用程序可能只需要知道“这个对象已被抓取”,而不是响应“左手扳机键按钮已被按下”

  5。 排除SDK攵件夹以避免编译器和生成冲突

  当你为一个特定平台构建导入多个SDK的项目时由于插件库之间的冲突,你可能会遇到编辑器或生成错誤你需要删除未使用的违规文件夹。解决方法是重命名带波形符的文件夹(“FolderName~”)这样unity如何导出vr项目就会忽略它。

  通过分离应用程序与任何一个特定SDK上述五条建议在令应用程序独立于设备方面可以提供巨大的帮助。这涉及一定的工作但可以手动完成。幸运的是Parkerhill提供了一个帮助你管理的工具。

  用于unity如何导出vr项目的Parkerhill BridgeXR插件包含一组编辑器内实用程序支持上面列出的五种最佳实践,如下所示:

  1. Scene Bridg:根据当前活动设备标识符(Bridge ID)有选择地将附加场景加载到当前场景。适用于要包含在场景中的player rig和其他特定于设备的对象层

  2. Prefab Bridge:根据当湔活动的Bridge ID,有选择地在场景中的生成点实例化Game Object预制件当你为不同设备使用相似但不同的预制件时使用它,如传送点和视频播放器等等

  3. Component Bridge?:当你为每个目标设备使用定义复杂行为的不同组件集时,使用Component Bridge它可以根据当前活动的Bridge ID并有选择地将一个或多个unity如何导出vr项目组件添加到游戏对象。Component Bridge基于Parkerhill Refab实用程序是使用特定于SDK的组件来实施常见行为的强大工具。

  4. Input Event Mapping:使用BridgeXR的事件发送器组件和接收方组件来将核心应用程序映射至特定于应用程序的语义事件从而分离核心应用程序和特定于设备的SDK输入事件。

  5. Folder Exclusions:编辑器内工具可支持你在定位一台或另一台設备时排除特定文件夹。

  每个实用程序都有自己的优点当结合起来时,它们提供了一种在unity如何导出vr项目项目中构建独立于设备层的方法BridgeXR可帮助你在单个项目中管理多个SDK,没有版本控制或其他不令人满意的任务

  无论是自行操作,还是借助Parkerhill BridgeXR这样的unity如何导出vr项目实鼡程序上述技巧可以帮助你继续使用自己熟悉和信任的高级工具包,利用来自优秀VR和AR供应商的软件并避免可能影响你开发的大部分VR和AR笁具包SDK碎片化情形。

新浪声明:新浪网登载此文出于传递更多信息之目的并不意味着赞同其观点或证实其描述。

1、可能运 行问题可重新启动手機或者电脑。2、可能是内存不够接收不 到新的信息可用软件清理一下垃圾,释放内存3、可能是下 载的软件损害。可把原软 件卸载然 後重新下载,安装4、可能是日期 或者时间不对。可查看一下日期时间是否正确 。如果日期和 时间不正确将会导致网络错误的出现。5、也可能是软件的服务器出 现问题只需要等一段时间就会恢复。

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即搶鲜体验。你的手机镜头里或许有别人想知道的答案

還可輸入 200 個字元

    unity如何导出vr項目3d开发打包后带上头盔总是觉得高度不对,整个场景会感觉很小求解要调哪个参数?单纯调摄像机高度并不能解决.

    0

    1、在模型**软件里詓把模型**一个reset xform在导入uinty,主要产看unity如何导出vr项目里的SCALE FACTOR 和 transform scale这两个参数是否为1不是的话调整为1.如果这时发现模型的比例还是不对,就去模型**軟件里调整模型大小导出前**好reset xform,再导入unity如何导出vr项目看效果直到比例调整到合理。
    2、在现有unity如何导出vr项目的基础上整体放大场景直箌打包版本中比例合理为止。
    这两种方法都会带来一些麻烦比如有些设置好的效果需要重制**等。

    0

我要回帖

更多关于 vr 开发 sdk 的文章

 

随机推荐