本教程描述了以下基本步骤:
- 设置一个可以在 Meta Quest上构建和运行的 Unity 项目。
- 开发一个基本的“hello world”Unity 项目,其中包含单个场景以及在耳机上渲染的立方体游戏对象。 配置相机设置。
- 在 Meta Quest 耳机上构建、运行和测试项目。
本教程是快速开始 Meta Quest 开发的主要参考。
环境配置
在进一步阅读之前,请确保您已遵循设置开发环境和 Meta Quest 开发人员中心指南中的所有步骤。通过遵循这些指南,您的开发环境将为您在 Unity 中的第一个项目做好准备,并且您的 Meta Quest 将可以在 Meta Quest Develop Hub中访问。
- 名词解释
- Meta XR 一体化 SDK - 核心功能、组件、脚本和插件的一体化源,可简化应用程序开发过程。
- OVRPlugin - 一个允许 Unity 与 Meta Quest 的 VR 运行时通信的插件。
- Oculus XR 插件 - Unity VR 子系统的扩展,与 OVRPlugin 通信。
本文基于unity 2021.3.30和meta sdk v57运行,而原教程基于Unity Editor version 2021.3.20f1 and Meta XR All-in-One SDK v59.
第一步 通过usb连接头显
您必须将头显设置为开发者模式,并通过USB线缆将其连接到您的电脑。
戴上您的Meta Quest头显,并登录您想用于开发的账户。 在头显上,前往“设置”>“系统”>“开发者”,并打开“USB连接对话框”选项。 使用USB-C线缆将头显连接到您的电脑。 当提示允许访问数据时,选择“允许”。
我使用的是quest3,不会弹系统弹窗,需要到通知中心找到访问文件的通知点击允许
第二步 在unity创建一个新工程
暂时将您的头显放在一边,然后按照以下流程操作:
- 打开Unity Hub。
- 在“项目”标签下,选择“新建项目”。如果您安装了多个Unity版本,请选择您想为这个项目使用的版本。
- 选择“3D Core”模板。
- 在“项目设置”下,输入HelloWorld作为项目名称,选择存储位置,并选择“创建项目”。
第三步 创建一个cube并展示给用户
随便建一个cude就行
第四步 从unity 插件商店导入meta sdk
稍后,您将学习如何仅导入您需要的SDK,以减小您应用的大小,但现在,请导入全部内容。
导航到“窗口”>“包管理器”以打开Unity包管理器面板。
前往Unity资源商店页面,如有需要请登录。
点击“添加到我的资源”按钮。
选择“在Unity中打开”以开始与Unity中的包管理器的集成过程。如果有请求,允许Unity打开资源商店链接。
等待Unity包管理器窗口打开。
在“Meta XR SDK”面板上,点击“安装”。
当提示重新启动Unity时,点击“重启编辑器”。
这步如果v59安装不上可以下一个v57替代
第五步 设置安卓编译环境
File > Build Settings.
platform选Android,然后点switch platform,然后在Run Device里选择你的vr头显,确保这时头显已经连上pc了
第六步 运行meta插件的自检程序
Oculus > 工具 > 项目设置工具。Unity项目设置工具包含了在Unity中创建一个新的Meta Quest应用程序的规则。
在项目设置工具的Android图标标签下的检查列表中,选择“全部修复”。
把所有tab下的fix all全点了就行
第七步 添加一个OVRCameraRig
上面的步骤其实和vr还没什么关系,从这步开始,我们才开始使用meta给我们提供的预制体 Meta XR Core SDK包含了OVRCameraRig预制件,它是Unity主摄像机的替代品。这意味着您可以安全地从层级(Hierarchy)标签中删除Unity的主摄像机。
使用OVRCameraRig的主要好处是它提供了OVRManager组件(OVRManager.cs脚本)。OVRManager提供了与VR硬件的主要接口。
按照这个过程操作:
在层级(Hierarchy)标签下,右键点击主摄像机(Main Camera),然后选择删除(Delete)。 在项目(Project)标签下,搜索Camera Rig,并将OVRCameraRig预制件拖动到您的场景中。或者,也可以直接在层级(Hierarchy)标签中拖动它。
添加OVRCameraRig
确保您项目的层级结构如下所示:
OVRCameraRig层级结构
在层级(Hierarchy)标签中选择OVRCameraRig。 在检查器(Inspector)中选中OVRCameraRig的情况下,在OVR Manager组件下,确保您的头显在目标设备(Target Devices)下被选中。
第八步 运行工程
File > Build Settings , Scenes, 选择 Add Open Scenes. 这里不选择也没事,然和点Build And Run,如果前面的配置没问题,那等待之后应用就会安装到你的vr里了,在dev hub也能看到
一点优化
自此,官方教程结束了,我们可以稍微优化一下demo,也学习一下unity的一些操作
- 换个天空盒
-
选择或创建天空盒材料:
- 如果你已经有一个预制的天空盒材料(Skybox Material),可以直接使用它。否则,你可以创建一个新的天空盒材料。在Unity编辑器的Project视图中右键单击,选择
Create>Material。 - 在材料的检视面板中,将Shader从标准材料更改为Skybox。你可以选择不同类型的Skybox,例如
Skybox/6 Sided、Skybox/Cubemap、Skybox/Panoramic等,根据你的天空盒贴图类型选择合适的Shader。
- 如果你已经有一个预制的天空盒材料(Skybox Material),可以直接使用它。否则,你可以创建一个新的天空盒材料。在Unity编辑器的Project视图中右键单击,选择
-
配置天空盒材料:
- 在材料的Shader属性中,你需要指定用于天空盒的纹理。例如,如果你选择了
Skybox/6 Sided,你需要为天空盒的每一面指定一个纹理。
- 在材料的Shader属性中,你需要指定用于天空盒的纹理。例如,如果你选择了
-
将天空盒应用到场景:
- 在Unity的菜单栏中,选择
Window>Rendering>Lighting Settings打开光照设置。 - 在出现的Lighting面板中,找到
Environment部分,你会看到一个Skybox Material的选项。将你的天空盒材料拖放到这个字段中。 - 如果你未能看到天空盒材料的字段,请确保你的场景中有一个主光源(Directional Light),并且在其光照设置中
Environment Lighting的Source被设置为Skybox。
- 在Unity的菜单栏中,选择
-
调整天空盒设置(可选):
- 如果需要,你可以调整场景中的主光源方向,以便天空盒中的光源与场景中的实际光照方向匹配。
- 你也可以调整天空盒的缩放和旋转,以获得最佳视觉效果。
-
保存并测试:
- 保存你的场景,并在游戏模式中预览天空盒效果,确保一切看起来都像你预期的那样。
到这里aigc生成一个想要的天空盒然后加上去skybox.blockadelabs.com/
- 给cube加个旋转动画
-
创建立方体:
- 在Unity编辑器中,创建一个立方体(Cube)。你可以通过菜单
GameObject>3D Object>Cube来创建一个新的立方体。
- 在Unity编辑器中,创建一个立方体(Cube)。你可以通过菜单
-
添加脚本:
- 右键点击项目视图(Project View)中的空白区域,选择
Create>C# Script。给脚本命名,例如RotateCube。 - 将这个新创建的脚本拖拽到立方体对象上,或者在立方体被选中的情况下,直接在检视视图(Inspector View)中点击
Add Component按钮,搜索并添加RotateCube脚本。
- 右键点击项目视图(Project View)中的空白区域,选择
-
编写脚本:
-
双击
RotateCube脚本打开你的代码编辑器。 -
在脚本中编写代码来实现旋转功能。以下是一个简单的例子:
csharpCopy code using UnityEngine; public class RotateCube : MonoBehaviour { public float speed = 50f; // 旋转速度 void Update() { // 每帧旋转立方体 transform.Rotate(Vector3.up, speed * Time.deltaTime); } }这段代码会在每帧更新时,沿着立方体的Y轴(向上)旋转。
speed变量控制旋转的速度,你可以在Unity编辑器中调整这个值。
-
-
调整脚本参数:
- 在Unity编辑器中,选择立方体,然后在检视视图中找到
RotateCube脚本组件。 - 调整
speed参数来改变旋转速度。
- 在Unity编辑器中,选择立方体,然后在检视视图中找到
-
运行并测试:
- 点击Unity编辑器的播放按钮运行游戏,你的立方体应该会开始旋转。
通过这种方式,你可以轻松地让立方体在Unity中自行旋转,并且可以自定义旋转的速度和方向。
现在安装到头显里,如果一切顺利,你将看到立方体在场景内转动