基于Unity3D的google cardboard开发
来源:互联网 发布:豆瓣fm推荐算法 编辑:程序博客网 时间:2024/06/07 17:21
google cardboard 很好玩,提供的例子也很容易上手。google大法好。
首先,下载google cardboard的sdk。https://github.com/googlesamples/cardboard-unity
打开Unity3D,导入SDK包
如果是Unity3D版本中5以上的,不需要导入Legacy目录。
新建一个场景,把里面的东西删空,然后从cardboard的预制件中,把CardboardMain拖到场景里面。
其实,最简单的开发到这里就可以了。现在在场景里面添加个方块。可以点击Head下的摄像头看默认效果。
这个时候,点击editor里的运行就可以看到实际效果了。
这个时候,可以通过按住Alt键+鼠标左右移动模拟带上cardboard后头左右转动的效果。也可以按住Ctrl+鼠标左右移动模拟头左右歪来歪去。
到这里,最最基础的cardboard的程序开发就算完成了,发布到手机上就可以用来。
因为带上cardboard的时候,没办法操作,所以,需要一个对准焦点的东西,google cardboard的sdk也提供了这个功能。
接下来,开始实行,但视野对准方块时的操作。
首先在Head下的Main Camrea里添加Physics Raycaster组件
重新选择Physics Raycaster组件的event mask,这里很重要。如果不勾选,会导致3D瞄准点漂移。
在Head下面,添加一个空的game object。暂时命名为Target
先做一个2D的瞄准点,直接把一个2D sprite拖到新建的game object下。
写一个简单的脚本,两个公开方法,分别是当视野瞄准方块和从方块移开的时候。
在场景里面添加一个EventSystem对象,并且把自带的Standalone Input Module组件删除。
再在EventSystem对象上添加cardboard的Gaze Input Module组件
把之前新建的对象拖到Cursor里
接着,为方块添加Event Trigger组件
再在Event Trigger里点击点进入,点离开,点点击事件,把刚才写的脚本也添加到方块上。
设置事件发生时调用的方法。Point Down是点击以后才发生,当使用cardboard的时候,其实是没用的。
这个时候瞄准点击添加好了。运行看下,当正对方块的时候,会显示刚才放进去的那个小图标,不过,会被遮住一部分。同时,脚本也起作用了。
当然,也可以用3D对象作为瞄准点,现在删掉2D sprite,添加一个球体。这里注意,一定要修改Layer,不能是Main Camera的组件Raycaster的Mask选中的Layer,否则会出现漂移。
这个时候再运行看下,当正对方块的时候,新添加到小球就显示出来了。
基于Unity3D的google cardboard最基础的开发就到这里。本人也是刚开始学习,很多不懂的地方,请多多指教。谢谢大家。
- 基于Unity3D的google cardboard开发
- Google Cardboard、 GVR Unity3D 开发
- google cardboard unity 开发
- google cardboard的测评
- 初尝用Unity3D配合Vuforia开发适合Cardboard的AR(增强现实)应用
- Google VR开发-Cardboard VR SDK头部追踪实现(牵涉到的抽象模型)
- Google Cardboard 虚拟现实眼镜开发初步(一)
- Google VR开发-Cardboard VR SDK生命周期设计
- Google VR开发-Cardboard VR SDK反畸变实现
- Google cardBoard Android的两个jar包,以及Demo
- 基于Unity3D的打砖块游戏开发
- 新版本的Google VR SDK for Unity与Google Cardboard SDK的简单比较`
- Google VR开发-Cardboard VR SDK头部追踪实现(卡尔曼滤波)
- Google VR开发-Cardboard VR SDK头部追踪实现(隐马尔可夫模型)
- Google VR开发-Cardboard VR SDK头部追踪实现(罗德里格旋转公式)
- 开发基于 Google Map 的 Android 应用
- 开发基于 Google Map 的 Android 应用
- 开发基于Google Map的Android应用
- java方法调用绑定
- int和Integer的区别&&String s=new String("abc")和String s = "abc"的区别
- linux基础(六)----linux命令系统学习----网络操作命令
- Android Studio 使用中遇到的问题和解决方案
- Windows下Oracle 10g instant client安装配置
- 基于Unity3D的google cardboard开发
- scala的foreach和for
- int和Integer的区别&&String s=new String("abc")和String s = "abc"的区别
- Android Ril层浅析
- Linux下JVM中可生成的最大Thread数量
- CAKeyframeAnimation 关键帧动画
- java工程师面试经典题目整理
- Xcode7中你一定不知道的调试神技
- 调用系统相机拍照与手机图库