如何在Unity中为Google Cardboard开发360°VR视频播放应用
实操指南:Unity 2021.3 LTS + Google Cardboard 360°视频播放(Android/iOS适配)
一、环境与依赖准备
- 安装Unity 2021.3 LTS,安装时勾选Android/iOS构建支持(后期也可通过Unity Hub补装)
- 导入Google Cardboard SDK:打开Package Manager,选择「Unity Registry」,搜索「Google Cardboard」,安装兼容2021.3的版本(推荐1.20+)
- 准备360°MP4视频:必须是等矩形投影格式,分辨率建议2K/4K,编码用H.264(Android/iOS通用)
二、项目基础设置
- 开启VR支持:
- 打开
Edit > Project Settings > XR Plug-in Management - 勾选「Initialize XR on Startup」,然后在Android/iOS标签下分别勾选「Google Cardboard」
- 打开
- 调整Player设置:
- Android:
Player Settings > Android > Other Settings,设置最低API等级为Android 8.0(API 26)及以上,目标API选「Automatic (highest installed)」;关闭「Multithreaded Rendering」(避免部分机型兼容问题) - iOS:
Player Settings > iOS > Other Settings,设置最低iOS版本为11.0及以上,开启「Requires ARKit」,在「Camera Usage Description」里填写相机权限说明(比如"用于头部追踪")
- Android:
三、360°视频播放核心实现
- 创建球体:在Hierarchy右键「3D Object > Sphere」,命名为
PanoramaVideoSphere - 反转法线:把球体的
Scale设为(-1,1,1)(让视频在球体内侧显示) - 添加视频播放器组件:
- 给球体加
Video Player组件 - 在
Video Clip里拖入你的360°MP4视频;如果是远程播放,填Url字段即可 - 设置
Render Mode为「Material Override」,把球体的材质拖到Material栏
- 给球体加
- 配置材质:
- 新建
Unlit/Texture材质,命名为PanoramaVideoMat - 把这个材质拖给球体,再在
Video Player组件里选中它作为覆盖材质 - (可选)如果视频带透明通道,改用
Unlit/Transparent材质
- 新建
四、Cardboard视角适配
- 删除默认的
Main Camera - 从Cardboard SDK的Prefab目录(
Packages/Google Cardboard/Runtime/Resources/Prefabs)拖入CardboardMain到Hierarchy - 把
CardboardMain的Position设为(0,0,0),和球体中心对齐 - 测试:进入Play模式,按
Ctrl+O模拟头部转动,确认能看到完整的360视频画面
五、打包与测试
Android打包
- 打开
File > Build Settings,切换到Android平台,点「Switch Platform」 - 进入
Player Settings,设置包名(比如com.yourname.cardboardvideo)、版本号和版本代码 - 开启设备USB调试并连接,点「Build and Run」,安装后即可用Cardboard头显观看
iOS打包
- 切换到iOS平台,设置Bundle Identifier(对应你的苹果开发者账号ID)、版本号和Build号
- 点「Build」生成Xcode项目,用Xcode打开后配置开发者签名,再运行到iOS设备上
六、常见问题排查
- 视频黑屏:检查Video Player的视频文件是否正确赋值,材质是否为Unlit类型,视频编码是否为H.264
- 视角异常:确认球体已反转法线,CardboardMain的位置在球体中心
- 头部追踪失效:检查XR Plug-in Management是否勾选了对应平台的Google Cardboard,设备相机权限是否开启
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

