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