基于Unity3D的google cardboard开发

google cardboard 很好玩,提供的例子也很容易上手。google大法好。


首先,下载google cardboard的sdk。https://github.com/googlesamples/cardboard-unity

基于Unity3D的google cardboard开发_第1张图片


打开Unity3D,导入SDK包

基于Unity3D的google cardboard开发_第2张图片


基于Unity3D的google cardboard开发_第3张图片


如果是Unity3D版本中5以上的,不需要导入Legacy目录。

基于Unity3D的google cardboard开发_第4张图片


新建一个场景,把里面的东西删空,然后从cardboard的预制件中,把CardboardMain拖到场景里面。

基于Unity3D的google cardboard开发_第5张图片


其实,最简单的开发到这里就可以了。现在在场景里面添加个方块。可以点击Head下的摄像头看默认效果。

基于Unity3D的google cardboard开发_第6张图片


这个时候,点击editor里的运行就可以看到实际效果了。

这个时候,可以通过按住Alt键+鼠标左右移动模拟带上cardboard后头左右转动的效果。也可以按住Ctrl+鼠标左右移动模拟头左右歪来歪去。

基于Unity3D的google cardboard开发_第7张图片


到这里,最最基础的cardboard的程序开发就算完成了,发布到手机上就可以用来。

因为带上cardboard的时候,没办法操作,所以,需要一个对准焦点的东西,google cardboard的sdk也提供了这个功能。

接下来,开始实行,但视野对准方块时的操作。


首先在Head下的Main Camrea里添加Physics Raycaster组件

基于Unity3D的google cardboard开发_第8张图片


重新选择Physics Raycaster组件的event mask,这里很重要。如果不勾选,会导致3D瞄准点漂移。

基于Unity3D的google cardboard开发_第9张图片


在Head下面,添加一个空的game object。暂时命名为Target

基于Unity3D的google cardboard开发_第10张图片


先做一个2D的瞄准点,直接把一个2D sprite拖到新建的game object下。

基于Unity3D的google cardboard开发_第11张图片


基于Unity3D的google cardboard开发_第12张图片


写一个简单的脚本,两个公开方法,分别是当视野瞄准方块和从方块移开的时候。

基于Unity3D的google cardboard开发_第13张图片


在场景里面添加一个EventSystem对象,并且把自带的Standalone Input Module组件删除。

基于Unity3D的google cardboard开发_第14张图片


再在EventSystem对象上添加cardboard的Gaze Input Module组件

基于Unity3D的google cardboard开发_第15张图片


把之前新建的对象拖到Cursor里

基于Unity3D的google cardboard开发_第16张图片


接着,为方块添加Event Trigger组件

基于Unity3D的google cardboard开发_第17张图片


再在Event Trigger里点击点进入,点离开,点点击事件,把刚才写的脚本也添加到方块上。

基于Unity3D的google cardboard开发_第18张图片


设置事件发生时调用的方法。Point Down是点击以后才发生,当使用cardboard的时候,其实是没用的。

基于Unity3D的google cardboard开发_第19张图片


这个时候瞄准点击添加好了。运行看下,当正对方块的时候,会显示刚才放进去的那个小图标,不过,会被遮住一部分。同时,脚本也起作用了。

基于Unity3D的google cardboard开发_第20张图片


当然,也可以用3D对象作为瞄准点,现在删掉2D sprite,添加一个球体。这里注意,一定要修改Layer,不能是Main Camera的组件Raycaster的Mask选中的Layer,否则会出现漂移。

基于Unity3D的google cardboard开发_第21张图片


这个时候再运行看下,当正对方块的时候,新添加到小球就显示出来了。

基于Unity3D的google cardboard开发_第22张图片


基于Unity3D的google cardboard最基础的开发就到这里。本人也是刚开始学习,很多不懂的地方,请多多指教。谢谢大家。

你可能感兴趣的:(移动平台开发,unity3d)