本实训介绍如何使用Unity3D进行HTC Vive游戏开发。 01 H
首页 行业资讯 文章详情
行业资讯

AR/VR实训:使用Unity3D进行HTC Vive游戏开发|附视频_Steam

发布日期:2026-05-29 05:17 来源:卡波石科技

文章配图-1

本实训介绍如何使用Unity3D进行HTC Vive游戏开发。

01

HTC Vive简介

Vive是首款由HTC和Valve合作共同开发的虚拟现实系统,结合了最先进的影音与动作捕捉技术。Vive最初就以房间规模的虚拟现实为目标,给用户带来最完整的虚拟现实体验。

Vive头戴式显示器上共有32个定位感应器,其准确定位所带来的临场感,能使用户沉浸在110°视场中,体会精彩绝伦的视觉内容。精细的图像在2160×1200的分辨率及90Hz 刷新率的推送下,带来了流畅的游戏体验和逼真的感受与动作。2个握在手中的无线控制器各有24个定位感应器,提供了360°一比一的精密动作捕捉。控制器上搭载二段式扳机、多功能触摸板和HD触感反馈;有了它们就能行云流水、随心所欲地与游戏内容交互。而房间规模的动作捕捉则是透过2个定位器来完成;定位器能直接无线同步,如此一来就无须需使用到额外的电线。

为了能让体验不中断,Vive也内置了便利与安全功能。Chaperone系统将在用户接近游戏空间边缘时做出提醒,而显示器上的前置摄像镜头也能将现实中的物体融入虚拟世界。这些特点使得Vive能将体验者感受到一个超乎想象的世界。

02

HTC Vive主机配置

HTC Vive的主机配置如图1所示,包括:

GPU: NVIDIA® GeForce® GTX 1060 / AMD Radeon™ RX 480 同等或更高配置;

CPU: Intel® i8-4890 / AMD FX 8380 同等或更高配置;

RAM: 4GB+;

Video 视频输出: HDMI 1.4 or DisplayPort 1.2 或更高版本;

USB 端口: 1×USB 2.0 或更高版本的端口;

操作系統: Windows 7 SP1、Windows 8.1 或更高版本、Windows 10。

文章配图-1

图1 主机、CPU、显卡

03

HTC Vive软件配置

当所有的硬件设备都准备好并搭建成功后,就可以开始着手配置HTC Vive软件设置。 从Steam的官方网站上下载Steam平台安装在本地,如图2所示。

文章配图-2

图2 Steam安装界面

打开安装好的Steam平台,在“库”→“工具”里面搜索SteamVR并下载,如图3所示。

文章配图-3

图3 库中搜索SteamVR

启动SteamVR之后,系统会自动检测当前所连接的设备,如果所有设备都正常连接,则显示如图4所示界面。

文章配图-4

图4 Steam VR显示界面

单击SteamVR下拉菜单,选择房间设置,如图5所示。

文章配图-5

图5 房间设置界面

如果当前环境有足够的空间,则选择房间模式进行设置,如果空间太狭窄,则选择站立模式。这里选择房间规模进行调试,如图6所示。

文章配图-6

图6 按照指令操作

根据提示进行操作,如图7所示。

文章配图-7

图7 定位显示器

在这些步骤都完成之后,最后一步进行范围划定,Vive最远范围要求不超过8m,如图8所示。

文章配图-8

图8 设置游玩范围

当这一步完成之后,就可以进行Vive体验了。

04

HTC Vive案例开发

配置好HTC Vive的软硬件,就可以开始结合Unity3D进行项目的开发了。

1. 导入开发工具包

在unity Asset Store资源商店搜索SteamVR Plugin,下载后导入Unity。

导入成功后会在Project窗口中出现一个SteamVR文件夹和SteamVR_Input文件夹。

2. 导入资源素材

在资源商店3D资源中搜索环境类的免费资源,这里以Dark Fantasy Kit为例,选择下载并导入到项目中,如图9所示。

文章配图-9

图9 下载并导入Dark Fantasy Kit

3. 添加VR摄像机

在Project窗口搜索框搜索Player,将Player拖拽到场景中的地板上,这个Player就是场景中的摄像机。在Hierarchy窗口中将原来的Camera删除,如图10所示。保存场景,并运行查看摄像机是否能正常启用。

文章配图-10

图10 删除原有的Camera

这时如果可在头盔中看到房屋中的情况,代表摄像机启动正常。

4. 添加移动功能

选择其中一块地面dfk_floor_01(1),在Hierarchy窗口中复制该地面文件得到dfk_floor_01(4),将该文件拖拽到FLOOR文件夹外。在Inspector面板中将该地面的高度提高0.02,使其避免与地面重合。

为了使整个地面都能移动,对该地面进行扩充,使其填满整个房屋。单击Scenes窗口右上角的方向标记,选择以顶视图的方式进行添加。沿选中地面的边框将其拖拽到最大,这里只能到床边位置,如图11所示。

文章配图-11

图11 拖拽地面边框到最大化

复制地面文件dfk_floor_01(4)得到dfk_floor_01(8)。将dfk_floor_01(8)移动到床和柜子中间部分,使其与dfk_floor_01(4)对应的地板地面边缘刚好完全接缝,如图12所示。dfk_floor_01(4)和 dfk_floor_01(8)就作为房屋场景中可以移动的区域。

文章配图-12

图12 复制地面文件并调整地面边框

更换地面材质,使其与原来的地面有所区别。在Inspector面板中Materials参数下单击Element选择右侧的扩展按钮,然后在弹出的材质选择框内搜索area,选择可移动区域地面为蓝色的材质。Scene窗口中运行场景查看可移动地面变成蓝色的方格,如图13所示。

文章配图-13

图13 查看可移动地面材质

5. 添加脚本

同时选中dfk_floor_01(4)和 dfk_floor_01(8)两个脚本,在Inspector面板中单击Add Component,添加名字为Teleport Area的脚本。该脚本代表在VR中可行走的区域。

单击dfk_floor_01(8)脚本,在Inspector面板的Teleport Area脚本下勾选Locked,使该区域被锁定,成为无法行走的区域。dfk_floor_01(4)脚本不变,即对应的区域没有被锁定,可以行走。

6. 添加预制体

Project窗口搜索预制体Teleporting,将该预制体拖拽到Hierarchy窗口中,如图14所示。

文章配图-14

图14 添加预制体

7. 保存场景

保存场景并运行,可看到场景中有一个手柄。当没有按手柄时,手柄上会有一个黄色的高亮提示和一个信息提示标签Teleport,表示可以通过手柄进行移动。

当在可行走区域内按下手柄,会有一个绿色的抛物线和圆环出现,松开手柄可以移动到圆环所在位置。当抛物线出现在锁定区域时,圆环会变成一个红色的禁止符号,如图15所示,表示无法进入到该区域。这样就实现了在房间场景中的移动功能。

文章配图-15

图15 锁定区域

8. 添加拾取功能

在Project窗口中找到Lightsources文件夹,将该文件夹下的蓝水晶文件dfk_crystal_01_blue拖拽到场景桌面上,该水晶作为场景中的可拾取物体。Inspector窗口中可以看到,水晶的Static参数默认被勾选,说明水晶属于静态类型,不参与场景中的逻辑运算。这里需要把Static参数的勾选去除。

SteamVR本身已经提供了一些完整的可拾取物体的功能,用户可以直接使用。在Project窗口中搜索ThrowableCube,将其拖拽到Scene窗口的桌面上。 运行查看效果,可看到当手柄靠近立方体时,立方体会变成蓝色,当按下手柄时可拾取该立方体,这时物体颜色变成白色,如图16所示。

文章配图-16

图16手柄靠近拾取物体时可拾取物体颜色的变化

接下来就可以根据该立方体的可拾取功能对水晶进行改写。Hierarchy窗口中单击选择ThrowableCube,右键选择Unpack Prefab(解包打开该预制体),如图17所示。

文章配图-17

图17 解压立方体预制体文件

Hierarchy窗口中单击Cube,在Inspector窗口最上方Cube前方框中的勾选去除,在场景窗口中就看不到立方体了,如图18所示。这样就完成了两个模型之间的替换。

文章配图-18

图18 模型替换

9. 添加交互功能

给一个物体,或者UI添加Interactbale组件后,这个物体就可以通过手柄进行交互了。由于Cube被添加了Interactable组件,当手柄接触到Cube时,手柄会高亮,并震动一下。

要想通过手柄拾取或放下物体时,需对物体进行响应Hand交互事件设置。Hierarchy窗口中单击ThrowableCube,将滚动条滑到Inspector窗口下部可看到一个交互组件Interactable Hover Events(悬停事件),下面对应有4个事件:On Hand Hover Begin 代表手柄碰到物体的开始事件;On Hand Hover End 代表手柄离开物体的结束事件;On Attached To Hand 代表手柄可响应抓取物体的事件;On Detached From Hand 代表手柄响应放下物体的事件。

找到水晶原有的材质球,单击Element0后的dfk_crystal_01_blue,找到Project窗口中对应的材质球,以这个材质球为默认的颜色,在手柄退出时会采用这个默认的蓝色。

将其拖拽到On Hand Hover End 事件后的方框内,再找到文件名为dfk_candles_01的材质球,将其拖拽到On Hand Hover Begin 事件后的方框内,将该黄色材质球作为手柄进入时使用的默认颜色。

至此对蓝色水晶的状态、响应等进行了替换,在Hierarchy窗口将蓝色水晶的名字由ThrowableCube修改为ThrowableWapan。运行查看效果,当手柄进入交互区可拾取物体交互区域时,可拾取物体变为黄色;当手柄离开时,可拾取物体变为蓝色;当使用手柄拾取物体时,物体也是蓝色,如图8.49所示。

文章配图-19

图8. 49 查看交互效果

10. 导出场景

单击File菜单,选择Build Settings选项。然后在弹出窗口中单击选择PC,Mac & Linux Standalone平台,在单击右侧的Add Open Scenes按钮,将刚才创建的场景勾选上。最后单击窗口左下角的Player Settings按钮。在Inspector窗口的Other Setting中将Bundle Identifier修改为com.think.VIVEDemo,然后再单击Build按钮,完成场景的导出。

05

视频讲解

讲解视频如下:

06

参考书籍

AR/VR技术与应用——基于Unity 3D/ARKit/ARCore(微课视频版)

ISBN:978-7-302-55526-1

范丽亚 张克发 马介渊 赵兴 谢有龙 编著

定价:89元

文章配图-20

07

精彩文章回顾

  • Python模拟浏览器实训:自动登陆邮箱|附视频

  • Python爬虫实训:实现图书信息采集|附源码+视频

  • Spark基本统计--基于DataFrame的API|附视频

  • Spark算法实例:词频统计

  • 大数据集群的部署实例|附视频

  • 用Excel制作工资条实例|附素材+视频

  • 真题解析│2017年蓝桥杯软件类省赛传统“送分题”

  • Java 15新增类Record的工作实例|附代码

  • Dart应用Bloc设计模式实例|附代码

  • 逻辑回归的MATLAB实践|附代码

  • Python爬虫实例:采集微博博文|附视频

  • MySQL利用E-R模型的数据库概念设计|附视频

  • HTML5 实现黑白棋游戏 附代码
免责声明:本站内容来源于互联网公开信息,仅供学习和参考使用。如涉及版权问题,请联系我们,我们将在核实后第一时间删除相关内容。
« 上一篇:棋牌类游戏软件开发一定要源代码的程序_玩家 下一篇:企业软件定制开发包括什么?全面解析开发内容与流程_规划_系统_功用 »