StramVR SDK下包含InteractionSystem交互系统,本章大致介绍该交互系统的组成
核心
1、PlayerPrefab
2、Hand
3、Teleport(传送)
4、Teleport Point
5、Teleport Area
PlayerPrefab
1、BodyCollider和HeadCollider分别为身体和头部的碰撞器,可根据此碰撞信息不同,造成减血不同等效果
2、Hmd Transform意味着摄像机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,所以无法移动
TeleportPoint:可瞬移的点
TeleportPoint
Locked:确定该传送点是否可传送,通过代码可访问其属性
Marker Active:勾选时,该点一直显示,不勾选时,按下TouchPad时,该点才显示
Teleport Type:Move To Location / Switch To New Scene
Title:标题
Switch To Scene:要跳转到的场景的名字。若该场景在根目录Project文件下下,仅填写该场景名称即可。若在其他目录下,要填写完整路径
Teleport Area
在一个区域当中实现瞬移
新建面片,为其添加Teleport Area脚本即可