创建 VR(URP)启动模板

记录一下如何创建一个URP类型的VR项目。

一、基础环境

1. 新建 3D(URP)

在 Unity Hub 中选择3D(URP)核心模板进行创建:

3D(URP)

2. 安装 XR Plugin Management

在工具栏中找到Window -> Package Manager,将左上角的资源来源改为Unity Registry,并在左侧搜索XR Plugin Management,点击右下角install:

Package Manager

3. 安装 Steam VR

前往Unity Assets Store Steam VR,登录后添加至我的资源

回到Unity,将资源来源改为My Assets,选择Steam VR Plugin,点击坐下角Download,然后点击Import

20231031-160148-ha.png

之后会弹出 Steam VR Plugin 的导入弹窗,点击左下角Import:

20231031-160841-01.png

点击OK

20231031-161113-x4.png

点击Accept All

20231031-161125-Jb.png

到这里最好重启一下Unity。

重启后在工具栏中找到Edit -> Project Settings,选择底部的XR Plugin Management,如果没有选中OpenVR Loader,点击选中:

20231031-161638-38.png

4. 配置 SteamVR Input

工具栏中找到Window -> SteamVR Input

点击YES:

20231031-162358-aY.png

点击Save

20231031-162430-rn.png

5. 添加 Player

删除Hierarchy中的Main Camera:

20231031-161939-mk.png

Project中搜索Player,将其预制体拖至Hierarchy

20231031-162013-9F.png

6. 修改 Shader

如果后续是自定义制作VR手部或手柄等,这里可以不改。

由于采用的是 URP,SteamVR 默认不是 URP,因此需要重新设置一下Shader,以右手套为例:

Shader改为Universal Render Pipeline / Lit:

20231031-163453-in.png

展开此材质,将Surface Inputs中的Base Map改为,当前文件夹Materials下的vr_globe_color_red:

20231031-163733-7E.png

7. 运行测试

在运行前,随便添加两个参照物PlaneCube,点击运行:

20231031-164214-fo.png

20231031-175245-zd.png

二、房间设置

你需要先下载Steam,从Steam中安装Steam VR这款软件,当你启动VR项目时,Unity会自动启动Steam VR,根据自己的设备连接到Steam VR:

20231031-171845-JM.png

20231031-172001-HY.png

进入房间设置,根据你的情况选择房间设置,然后进行头盔校准: 20231031-172035-jm.png

20231031-172043-82.png

20231031-172107-QC.png

20231031-172125-NL.png

三、常用插件

1. DOTween

前往Unity Assets Store DOTween登录后添加至我的资源

回到UnityWindow -> Package Manager,将资源来源改为My Assets,选择DOTween,点击右下角Download,然后点击Import

20231031-172527-UI.png

2. QFramework

一个Unity开发框架,前往QFramework的仓库,滑动到下方点击下载:

20231031-173726-Fe.png

下载后直接放到,项目Assets目录下,找到QFramework.cs,在编辑器打开,找到Controller,为其继承增加ICanSendEvent

public interface IController : IBelongToArchitecture, ICanSendCommand, ICanGetSystem, ICanGetModel,ICanRegisterEvent, ICanSendQuery, ICanGetUtility, ICanSendEvent
{
}

3. HKUnityTools

来学习的隔壁公司自己整理的一些常用的Unity工具,前往HKUnityTools的仓库,下载代码Zip包,解压后将目录Assets下的HKTools放到项目的Assets目录下即可。

四、基础脚本

写好一些基础脚本,方便后续开发使用,存在了GitHub,下载zip包解压后,放到项目的Assets目录下即可。

五、3D 项目和 URP 项目区别

二者之间主要是渲染管线的不同3D项目使用的是旧的管线,即Build in渲染管线;而URP使用的是新的管线。再通俗一点地说,在两种工程里面的shader使用的语言不同,Build in管线是CG语言,而URPHLSL语言。

URP项目相对于传统的渲染管线,有以下优势:

  1. 更高的性能:URP项目使用了轻量级渲染管线,可以更好地利用现代硬件的性能,提供更高的帧率更短的渲染时间
  2. 更好的跨平台支持:URP项目设计时考虑了跨平台支持,可以在多个平台上运行,包括PC移动设备VR和AR等。
  3. 更容易扩展:URP项目提供了可扩展的渲染管线,可以轻松地添加自定义的效果和功能。
  4. 更易于使用:URP项目提供了更简单的材质和光照设置,可以更快速地创建和调整场景。

总之,URP项目是一个更现代化、更高效、更易于使用和扩展的渲染管线,适用于需要更高性能和更好跨平台支持的项目。