Oculus Rift S丨(三)实现Oculus空间出现手的效果、隔空抓取

提示:选中右侧目录,可快速找到所需内容

本系列博客地址:传送门

 

一、实现Oculus空间出现手的效果

目标

在Oculus应用中看到自己的手模型,用这个模型作为自己的手,进行交互。

出现手有三种效果:

1、只有手柄

Oculus Rift S丨(三)实现Oculus空间出现手的效果、隔空抓取_第1张图片

2、只有手

Oculus Rift S丨(三)实现Oculus空间出现手的效果、隔空抓取_第2张图片

3、手拿着手柄

Oculus Rift S丨(三)实现Oculus空间出现手的效果、隔空抓取_第3张图片

 

实现步骤:

效果1:只有手柄

直接将预制件:OVRCameraRig 拖到你的场景即可。

注意,该预制件也实现了摄像头效果。

 

效果2:只有手

直接将预制件:CustomHandLeft、CustomHandRight 拖到你的场景即可。

 

效果3:手拿着手柄

将 Locomotion 场景中 PlayerController 拖到你的场即可。

注意,该预制件也实现了摄像头效果。该场景是实现位移的场景,组件功能讲解看这篇博客:链接

 

 

二、隔空抓取

实现效果:

离物体隔着一段距离,当手指向它时,该物体表面变选中状态,握手,该物体会飞过来到你手上。

 

方法:

1、实现眼镜、手功能

a、新场景,添加 :

OVRPlayerController(该预制件要从DistanceGrab场景复制,因为它比预制件多了检测的DetectGrabRange物体)

DistanceGrabHandLeft(左右手Transform重置,左手Rotation z值90,右手为-90)、

DistanceGrabHandRight 预制件(下方有预制件功能讲解)

b、为DistanceGrabHandLeft 和 DistanceGrabHandRight 上的Player属性赋值 OVRPlayerController

c、为DistanceGrabHandLeft 和 DistanceGrabHandRight 上的ParentTransform属性赋值 OVRCameraRig

Oculus Rift S丨(三)实现Oculus空间出现手的效果、隔空抓取_第4张图片

 

2、给要抓取的物体实现可抓取抓取属性

a、为物体添加:

刚体、

碰撞体、

DistanceGrabbable 脚本。(属性MaterialColorField,赋值  _OutlineColor  )

b、物体材质设置为Custom/ToyCubeOutline shader。(用于当选中时显示颜色)

 

预制件功能讲解

1、OVRPlayerController:

VR相机,左手摇杆可控制人物移动。

含有碰撞体,可与其他物体碰撞,不掉落地面等。

OVRSampleSceneController:控制人物旋转速度

其子对象DetectGrabRange物体:

含有一个圆形碰撞器,通过该碰撞器检测内部物体。当为可抓取物体时,显示白色。当手指向该物体时,该物体轮廓改为蓝色。

(所以修改该Collider大小,即可调整抓取区域。也可配合下方的MaxGrabDistance共同实现

Oculus Rift S丨(三)实现Oculus空间出现手的效果、隔空抓取_第5张图片

 

2、DistanceGrabHandLeft、DistanceGrabHandRight预制件

与上方手的预制件不同,该预制件可实现手距离抓取的效果。

DistanceGrabber:该组件使手可以抓住已配置了该DistanceGrabbable组件的远距离物体和附近物体。

PreventGrabThroughWalls:防止遥远的物体被墙壁抓住。

ObjectPullVelocity:将物体拉向手的速度。

MaxGrabDistance:可以抓取远处物体的最大距离。该DetectGrabRangeSphere Collider半径至少应等于(或略大于)半径。

GrabObjectsInLayer:只能抓取该图层中的对象。

ObstructionLayer:阻止对象成为目标和被抓取的层。

 

Oculus Rift S丨(三)实现Oculus空间出现手的效果、隔空抓取_第6张图片

你可能感兴趣的:(#,Oculus,Rift,S)