googlevr for unity 快速制作全景视频播放器

今天这篇教程,将教大家使用Unity在Google Cardboard平台上零代码制作一款运行在Android设备上的360全景视频应用。
以前做项目时,也做过一个全景视频播放器,当时是使用EasyMovieTexture这个插件,开发和调试各种不方便。现在unity新版本有了VideoPlayer组件,开发就便得格外的简单。

新建unity项目,在新建场景中添加一个球体,position设置为原点出(0,0,0),size设为(50,50,50),MainCamera的position同样设置为原点出(0,0,0),这样可以保证看视频时视角不会变形。
当时这时camera是看不到东西的,这是因为处于节省性能的目的,unity没有将球体的内部渲染 出来。所以现在需要通过着色器翻转球体的法线,一个小shader就可以了。
新建材质给球体,在将新建的shader给刚刚新建的材质。shader代码如下(复制即可):

Shader "Custom/flipnormal" {
    Properties {
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
    }

    SubShader {
        Tags { "RenderType"="Opaque" }
        Cull Off        
        CGPROGRAM
        #pragma surface surf Lambert vertex:vert
        sampler2D _MainTex;
        struct Input {
            float2 uv_MainTex;
            float4 color:COLOR;
        };

        void vert(inout appdata_full v)
        {
            v.normal.xyz=v.normal*-1;
        }
        void surf (Input IN, inout SurfaceOutput o) {
            fixed3 c = tex2D (_MainTex, IN.uv_MainTex);
            o.Albedo = c.rgb;
            o.Alpha = 1;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

给球体添加VideoPlayer组件,将准备好的 .MP4格式的全景视频拖至Video clip
googlevr for unity 快速制作全景视频播放器_第1张图片

导入GoogleVR SDK,并更改一些相关的设置:
依次点击Unity菜单项File – Build Settings,如果构建列表中不包含当前场景,则点击添加。选择Android作为构建的目标平台;
切换平台完成后,点击Player Settings打开播放器设置;
在播放器设置的“Other Settings”下勾选“Virtual Reality Supported”。在Virtual Reality SDKs下点击加号,选中Cardboard添加到列表;
设置调整完成后,将GoogleVR/Prefabs文件夹下的“GvrViewerMain”预制件拖拽到场景中,在检视视图中将其坐标设为球体中心(0, 0, 0)。
GoogleVR的其它功能可以自己来实现,以后有机会在可以写讲解GoogleVR的博客。

最后导出apk到Android设备上,就可以体验了。

你可能感兴趣的:(unity-3d)