查看原文
其他

360 VR Player Starter kit使用教程

2017-10-21 张忠喜 Unity官方平台

即使你不是开发人员,也可以使用360 VR Player Starter kit做一些简单的东西。今天,将由Unity开发者张忠喜为大家分享如何使用360 VR Player Starter kit,以及如何实现播放360全景图片和全景视频。


介绍

360 VR Player Starter kit是一个使用360°图像或360°视频VR项目的完美开端。本插件包括了一个球形屏幕、一个摄像机和一个交互的UI(一个交互式的准星、一个弯曲屏幕和一个基本的交互UI)。插件支持主流的移动头戴式盒子Google Cardboard和Gear VR应用,同时也支持Oculus Rift和HTC Vive应用。可以用键盘、鼠标和移动设备的陀螺仪旋转摄像机。可以利用交互UI准星的Gaze模式加载另一个360图片或视频,同时也对摄像机做了一个淡入淡出的系统。本插件适用于Windows、Mac、Android、iOS和WebGL。

 

开发环境

1.Windows 7操作系统。

2.Unity2017.1.f1。

3.Visual Studio 2015。


素材准备

1.准备任务目标中需要使用的360全景图片。这里我们使用插件自带的全景图片做测试。

2.准备任务目标中需要使用的360全景视频,这里我们通过网络下载了一个360全景视频。

3.准备任务目标中需要使用的UI素材,这里我们使用插件自带的图片资源。

 

任务目标

1.熟悉360 VR Player Starter kit插件的使用。

2.完成播放360全景图片和360全景视频的播放。


Step by Step

1.我们新创建一个场景命名为360VR,保存到你希望存放的地方,这里放在了Assets文件夹下。


2.接下来我们从Assets/Resources/FBX文件夹中把sphere_normal_inverted拖拽到刚创建的场景中,命名为sphere。


3.通过Assets-> Material创建一个新的材质球,命名为sphere。默认情况下材质球使用的是标准着色器,这里我们对其进行修改。通过下图方式更改为我们使用的着色器。




材质球的着色器更改完成后我们把Resources/Images文件夹下的SphereTex01赋值给材质球,然后把材质球通过拖拽方式赋值给sphere。


4.设置层次面板中sphere对象的Position(0,0,0);Rotation(90,0,-166);Scale(1,-1,1)。

5.通过AddComponent为sphere对象添加VideoPlayer组件。如下图所示:


6.我们选中场景中的Main Camera对象,然后通过AddComponent为其添加CamVision、GyroController和CameraController组件。添加完成后如下图所示:


Speed:摄像机的移动速度。
Drag Sensivity:拖拽的灵敏度。
Keyboard Rot:是否开启键盘旋转。
Mouse Rot:是否开启鼠标旋转。
Drag Rot:是否开启拖拽旋转。

7.我们从Resources/Prefabs文件夹下把BlackScreen预设拖拽到场景中作为Main Camera的子对象。


8.我们创建HUD。在层次面板创建一个空对象,命名为HUD。设置对象HUD的Position(0,0,0);Rotation(0,0,0);Scale(1,1,1)。选中HUD空对象,再创建一个空对象,命名为HUD_Reticle,设置它的Position(0,0,0);Rotation(0,0,0);Scale(1,1,1)。通过AddComponent为其添加FollowCamRotation组件。 然后把Main Camera 对象拖拽到Cam赋值槽中。设置Speed 为6。如下图所示:


Cam:HUD跟随的摄像机对象。
Speed:HUD跟随摄像机旋转的速度。值越高,HUD跟随就越快。


9.拖拽Resources/Images文件夹下的HUD_Pointeur_00046到场景中作为HUD_Reticle的子对象,命名为Reticle。设置Reticle的Position(0,0,3);Rotation(0,-180,0);Scale(0.15, 0.15, 0.15)。通过AddComponent添加Animator组件,并且使用插件制作好的HUD_Reticle动画控制器。


10.然后在层次面板继续创建一个空游戏对象,命名为TargetsContainer。设置对象TargetsContainer的Position(0,0,0);Rotation(3,-167,0);Scale(1,1,1)。然后拖拽Resources/Prefabs文件夹下的Target预设到场景中并且作为TargetsContainer的子物体。设置Target预设的Position(2.35,2,-11);Rotation(3,-167,0);Scale(1,1,1)。设置它的Tag为ScaleTarget。

这里我们可以看到Target对象的监视面板,如下图所示:


11.为了实现任务目标,我们这里修改ChangeRoom代码。打开ChangeRoom组件,在ChangeRoom组件上方添加代码如下:


在ChangeRoom中添加字段如下:


在Start()方法中添加如下代码:


为了方便我们做测试,在Update()里面添加代码如下:


然后更改FadeChangeRoom()方法如下代码所示:


在添加代码完成后,我们可以看到如下图所示:


这里我们把事先准备好的360全景视频导入工程中,同时设置ChangeRoom的Texture Sphere和Video Clips,如下图所示:


12.我们点击Play运行程序可以看到360全景图片和360全景视频的切换播放。如下图所示

 

 

结语

通过上面的简单流程操作,我们已经完成了任务目标。熟悉了插件的使用。同时也根据自己的需要整合进去了360全景视频播放功能。简单来说本插件简单容易使用,方便根据自己的需要进行各种功能扩展。后面我们还会继续为大家分享更多游戏开发中实用的工具在Unity官方中文社区(unitychina.cn),请保持关注。


推荐阅读

Unity移动游戏优化的小技巧

Unity 2017.2正式发布,新功能详解(下)

Unity 2017.2正式发布,新功能详解(上)

《Neon》项目的创作过程

Unity游戏项目常见性能问题


近期Unity官方活动

10月26日,我们将在上海举办Unity独立游戏日,火热报名中。


10月16日- 31日截止,Unity Plus加强版大促销


Unity Connect火热征文中,赶紧来分享你的Made with Unity作品吧!


点击“阅读原文”进入Unity官方中文社区

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

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