创建 VR(URP)启动模板
记录一下如何创建一个URP类型的VR项目。
一、基础环境
1. 新建 3D(URP)
在 Unity Hub 中选择3D(URP)核心模板进行创建:

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

3. 安装 Steam VR
前往Unity Assets Store Steam VR,登录后添加至我的资源。
回到Unity,将资源来源改为My Assets,选择Steam VR Plugin,点击坐下角Download,然后点击Import:

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

点击OK:

点击Accept All

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

4. 配置 SteamVR Input
工具栏中找到Window -> SteamVR Input:
点击YES:

点击Save:

5. 添加 Player
删除Hierarchy中的Main Camera:

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

6. 修改 Shader
如果后续是自定义制作VR手部或手柄等,这里可以不改。
由于采用的是 URP,SteamVR 默认不是 URP,因此需要重新设置一下Shader,以右手套为例:
将Shader改为Universal Render Pipeline / Lit:

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

7. 运行测试
在运行前,随便添加两个参照物Plane和Cube,点击运行:


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


进入房间设置,根据你的情况选择房间设置,然后进行头盔校准: 



三、常用插件
1. DOTween
前往Unity Assets Store DOTween登录后添加至我的资源。
回到UnityWindow -> Package Manager,将资源来源改为My Assets,选择DOTween,点击右下角Download,然后点击Import:

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

下载后直接放到,项目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语言,而URP是HLSL语言。
URP项目相对于传统的渲染管线,有以下优势:
- 更高的性能:URP项目使用了轻量级渲染管线,可以更好地利用现代硬件的性能,提供
更高的帧率和更短的渲染时间。 - 更好的跨平台支持:URP项目设计时考虑了跨平台支持,可以在多个平台上运行,包括
PC、移动设备、VR和AR等。 - 更容易扩展:URP项目提供了
可扩展的渲染管线,可以轻松地添加自定义的效果和功能。 - 更易于使用:URP项目提供了
更简单的材质和光照设置,可以更快速地创建和调整场景。
总之,URP项目是一个更现代化、更高效、更易于使用和扩展的渲染管线,适用于需要更高性能和更好跨平台支持的项目。
