Unity 5 + oculus dk2 + leap motion 开发环境搭建以及一些坑

1.环境搭建

    自从14年末搞了一个unity 4 + oculus dk2+kinect的“严肃”游戏后,一直没有再作过这一类的项目了。到了最近从新着手的时候,发现3种工具都有了大更新。一是unity 4升级为unity 5.4之后,许多功能甚至脚本库都发生了大改动,并且自动集成了oculus开发环境,不用像以前须要导入oculus资源包;二是kinect由于其精确性已经基本被淘汰了,改用新的手势识别设备leap motion,下面记录一下步骤。canvas

    unity 5.4.0安装不说了,oculus sdk使用最新的1.9.0,与之前使用的0.4大为不一样的是,安装后没有运行的oculus图标,不能进行设置,只能运行支持oculus的程序。leap motion也使用最新版orion beta。3个环境都安装完成之后,就能直接进行开发了。。。。。c#

    在unity中新建一个项目xxx,导入leap motion核心资源包LeapMotion_CoreAsset_Orion_4.1.1.unitypackage,在leap motion官网中下载。里面有一些简单的场景实例,能够直接运行,看看效果。ide

    而后再场景中拖入LMHeadMountedRig的prefab工具

给下面的leapHandControllrt添加4个prefab:ui

pepperBaseFullLeftHand和pepperBaseFullRightHand为自带的手的模型之一,勉强算精致this

rigidRoundHand_L和rigidRoundHand_R应该为骨头架子模型,控制手势spa

设置leapHandController下Hand Pool脚本的model pool 的size变量为2,如图绑定prefab插件

以后便能实现leap motion手势控制了。3d

而对于oculus,unity 5提供了默认支持,只须要在普通游戏完成之后,在菜单 file-》building-》player setting下,在弹出的面板下勾上virtual reality support,而后增长oculus sdks就行:游戏

如此导出游戏以后,便能在安装有oculus运行环境的电脑上运行游戏了。

 

2.坑

    导出的exe文件不能放在中文路径下,不然不能在头盔里运行,只能在桌面或英文文件夹下运行;

 

    LMHeadMountedRig下的CenterEyeAnchor自带了一个camera组件,正常运行游戏须要取消这个camera组件。

 

    c#脚本中,如今获取当前物体的组件不能直接使用this.AudioSource之类的方法或属性了,须要使用this.GetComponent<AudioSource>();这样的模板方法。不知道是否是升级unity 5以上的缘由。

 

    在增长碰撞体的时候,不规则碰撞体只能使用 mesh collider,可是须要其生效须要勾选convex属性,即物体的全部顶点构成一个最小凸多面体,可是这样是影响凹多面体的碰撞效果。

 

    模型问题:unity对fbx支持应该最好,其次是obj,对大部分3dmax制做的max文件来讲,经过3dmax转化成fbx都丢失了部分材质贴图,少许没有丢失,多是3dmax打开现成模型时候缺乏必要支持的插件形成的,因此最好模型直接导出为fbx,obj格式须要手动贴图。

 

    另外,模型选择须要仔细,模型划分越细越好,此次游戏咱们选择了一我的物模型,整个身体是一个大的mesh render,没有肢体的子模型,形成不能实现肢体动做,贴面的碰撞体,等等一系列问题。

 

    游戏面板问题:经过添加canvas组件绘制游戏面板,包括image,text等组件,这些组件在canvas组件下放置的顺序会影响其遮罩顺序,所以须要注意。

 

    主camera须要与地面平行!而且保持适当高度,不然游戏过程当中会产生超强的眩晕感(戴上头盔3秒晕吐),所以camera最好在align with view后调整rotation。

相关文章
相关标签/搜索