前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动

Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动

作者头像
walterlv
发布2023-10-22 11:38:57
3170
发布2023-10-22 11:38:57
举报

在 Unity 的帮助下,虚拟现实应用的开发非常容易。不过国内竟然还是没有什么教程,所以这里就来一点入门的,适合新手。

本文将基于第四篇的简单场景,通过传送的方式控制玩家移动。

系列博客:

搭建一个简单的场景

基于之前第四篇中我们添加的“Player”和控制器,我们这里简单打建一个场景。于是我们添加一个 3D 物体——“平面”——这足够简单。当然这不是必要的,只是会让我们后续的玩家移动看起来是踩在地面上,而不是悬在空中。

创建平面
创建平面

▲ 创建平面

创建完记得在检查器里面将平面的位置设置到 (0,0,0)。

设置平面的位置
设置平面的位置

▲ 设置平面的位置

创建传送动作

在资源中定位到“SteamVR”->“InteractionSystem”->“Teleport”->“Prefabs”,找到“Teleporting”然后将它拖拽到场景中。

只需要运行场景,你就能发现在推动手柄摇杆时就能传送了:

传送
传送

▲ 传送

不过,我们只能做出这个传送的动作,而不会真正地传送出去,因为我们还没有传送的“目的地”。

创建传送目的地

依然是在“SteamVR”->“InteractionSystem”->“Teleport”->“Prefabs”中。这次,我们拖拽“TeleportPoint”进入场景。

拖拽 TeleportPoint 进入场景
拖拽 TeleportPoint 进入场景

▲ 拖拽 TeleportPoint 进入场景

我们拖拽多个这样的传送目的地到场景中,运行看看效果。

可传送到目的地
可传送到目的地

可传送到目的地

在这张图片中,白色的地面让传送点很难看清,我们随便找一个非白色的材质拖拽到平面上。这里我直接使用“SteamVR”->“InteractionSystem”->“Teleport”->“Textures”里的“TeleportArea”材质(偷懒)。

使用非白色的材质
使用非白色的材质

创建传送目的区域

不过,只是传送到某个点的话,更像是看某场全景电影。要实现更加沉浸的体验,我们需要能让场景中的大多数地面都可被传送。

创建一个新的平面,同样将位置调整到 (0,0,0),再调整大小,将其与之前的白色“地面”重叠在一起。不过这个新的平面,我们要添加一个“TeleportArea”的脚本。

添加脚本 Teleport Area
添加脚本 Teleport Area

▲ 添加脚本 Teleport Area

运行看看,发现并不能传送(如下图):

无法传送
无法传送

无法传送

这是因为,我们创建的这两的平面完全重叠了。我们只需要将“TeleportArea”那个平面的 Y 坐标稍微向上移动一点点(例如 0.1 个单位)就可以了。

Y 移动一点点
Y 移动一点点

▲ Y 移动一点点

可以传送了
可以传送了

▲ 可以传送了

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/unity-openvr-starting-5.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 ([email protected])

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搭建一个简单的场景
  • 创建传送动作
  • 创建传送目的地
  • 创建传送目的区域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档