查看原文
其他

Unity Labs|可用于VR环境的列表视图框架

2016-09-14 Unity官方 Unity官方平台


本文为大家介绍Unity Labs团队开发的可用于VR环境的列表视图框架,代码和示例场景可以从Unity Asset Store获取,也可从Unity开源Git仓库中获取。


Unity Labs介绍

Unity Labs是专注于研究VR、AR、图形及游戏开发等相关前沿技术的团队。目前Unity Labs最主要的项目就是Unity VR编辑器以及Carte Blanche项目。Unity Labs团队介绍请看:


https://v.qq.com/txp/iframe/player.html?vid=x0328i7anef&width=500&height=375&auto=0


Carte Blanche项目介绍

Carte Blanche项目(PCB)是Unity实验室的研发计划,目的是为非技术用户提供VR-in-VR的编程工具。Carte Blanched的核心设计理念主要在于对象与行为的设计,它的一种典型示例:用户可以抓取虚拟的扑克牌,并将其放置在虚拟的桌子上,借助动作捕捉控制器真实地与卡牌互动。概念视频:


https://v.qq.com/txp/iframe/player.html?vid=f0328rv3l6d&width=500&height=375&auto=0


PCB卡牌系统介绍




PCB的卡牌系统比传统滚动列表要复杂得多。PCB系统要求卡牌必须能够动态出现或消失,且用户可以触碰到它们。此外,VR应用程序对性能的要求也极其苛刻。还要尽量避免实例化/销毁场景对象,因为这些操作的开销非常之大。最后为了可重用性,外观和感觉上的统一性起见,还需要一套可扩展的解决方案,能够使用其他类型的UI元素制造出相似的体验。
Unity Labs为列表视图开发了一套通用框架作为PCB卡牌系统的基础。代码和示例场景可以从Unity Asset Store获取,也可从Unity开源Git仓库中获取。示例效果如下:

 



Model与View的解耦本框架的一个设计目标是遵循MVC或MVVM设计模式,将数据的显示逻辑(view)与数据的状态(mode)本身解耦。对于任何一个框架而言,框架本身应自动处理列表当前状态的显示。这种实现下我们只需要考虑数据的当前状态,而不用关心如何处理视图的更新。
框架本身会负责搞定这些列表行的内存分配问题,并在列表元素离开屏幕时回收并重用在接下来要显示的元素上。
更为具体的技术实现细节请猛戳[阅读原文]访问Unity官方中文社区阅读!


资源包

List View框架现已发布至Unity资源商店,一同开放的还有Unity BitBucket官方账号的开源Git仓库。本文的框架是Carte Blanche项目资源包的首个模块,其他的模块将会陆续地以同样地方式对社区公布。


本框架可以归结为三个C#类:ListViewController(以两个文件存在),ListViewItem与ListViewItemData。这些类用来控制并处理鼠标与触摸的输入以及列表需要显示的数据。在处理游戏手柄,UI,手势输入或VR设备时这些类也能让开发者很方便地完成需要的特性。在PCB的例子中,列表视图的控制是通过手势追踪控制器来实现的。
更为具体的技术实现细节及代码下载请猛戳[阅读原文]访问Unity官方中文社区


小结

本文简单为大家介绍了Unity Labs团队以及他们正在做的项目,并提供了非常实用的可用于VR环境的列表视图框架。此前我们也分享了不少Unity官方制作的插件,后面也会陆续推出更多Unity实用工具及插件等。请关注Unity官方中文社区!


更多Unity官方提供的免费插件请看:


Unity官方活动


备受行业瞩目的VR/AR行业大会Vision VR/AR Summit Asia 2016即将在北京召开(轻触图片了解详情)!



点击“阅读原文”立即下载可用于VR的List View!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存