其他分享
首页 > 其他分享> > HTC VIVE丨3. 基于Player的人物传送(InteractionSystem)

HTC VIVE丨3. 基于Player的人物传送(InteractionSystem)

作者:互联网

StramVR SDK下包含InteractionSystem交互系统,本章介绍该交互系统传送的实现。

该系统的核心是:

PlayerPrefab
Hand
Teleport(传送)
Teleport Point
Teleport Area

一、Player

使用Player不需要像CameraRig一样先进行配置。Player已经配置好了。

1、BodyCollider和HeadCollider

它们分别为身体和头部的碰撞器,可根据此碰撞信息不同,造成减血不同等效果。
在这里插入图片描述

2、Hmd Transform

HmdTransform意味着摄像机Transform。

Unity分为了两种形式展现VR场景,一种是由VRCamera渲染的头显显示场景,另一种是由FallbackObjects的Camera渲染的场景,该场景可通过WASD和鼠标左右键控制人物在场景中移动.
在这里插入图片描述

访问Player属性的方法:

using Valve.VR.InteractionSystem;
 
Player.instance.hmdTransform...;
Player.instance.hands[0].AttachedObjects()...;
        
//对脚位置的估计值       
Vector3 a = Player.instance.feetPositionGuess;
      
//通过头盔和手柄的朝向估算身体的朝向值    
Vector3 b = Player.instance.bodyDirectionGuess;

二、Hand
在这里插入图片描述

Starting Hand Type:设置左右手,当设置一只为左手时,另一个Hand也必须设置为右手。也可不设置

Hover Sphere Transform:自定义设置手的悬停范围的transform,默认为手柄的transform

Hover Sphere Radius:设置手柄的悬停半径

Hover Layer Mask:指定哪些层能受到感应

Controller Prefab:指定操控的预制体,若不想使用手柄,可设置为其他物体

三、Teleport
在这里插入图片描述

Teleporting:实现了瞬移功能的预制体,将其拖入Hierarchy,此时按下TouchPad键,便可实现瞬移的画面显示。但此时还没有TeleportPoint,所以无法移动 注:放置1个就好

TeleportPoint:可瞬移的点(必须有Teleporting,实现传送功能,才可传送)

四、TeleportPoint
在这里插入图片描述

Locked:确定该传送点是否可传送,通过代码可访问其属性

Marker Active:勾选时,按下TouchPad时,该点显示。传动过去后,该点隐藏;不勾选:一直显示。传送过去后不会消失。

Teleport Type:Move To Location / Switch To New Scene

Title:标题(及上方显示的文字“跳转点”)

Switch To Scene:要跳转到的场景的名字。若该场景在根目录Project文件下下,仅填写该场景名称即可。若在其他目录下,要填写完整路径

五、Teleport Area
在这里插入图片描述

该功能作用:在一个区域当中实现瞬移。

操作方式:

新建面片,为其添加Teleport Area脚本,同时场景中需有一个Teleporting预制体。传送需是Player,不能是[CameraRig]。

但你要注意:这个可传送的面片不能被其他物体遮挡。

————————————————
版权声明:本文为CSDN博主「橙哥Skode」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38239050/article/details/81257080

标签:Teleport,InteractionSystem,场景,VIVE,Hand,Player,传送,瞬移
来源: https://blog.csdn.net/qq_42322611/article/details/115708189