实现功能
在SteamVR的InteractionSystem中存在一个模块CircularDrive可以帮助我们实现用手去旋转场景中的物体的功能
场景模型
准备一个门,注意其坐标轴中心点位于左上角,如果模型的坐标中心点与需求产生冲突可与美工沟通或者自己在Unity中用空物体进行调整
然后为物体需要与手交互的地方(此处是门把手)添加碰撞器,和脚本CircularDrive
关于脚本CircularDrive的属性
Axis Of Rotation:物体围绕该轴进行旋转
Child Colider:指定当前交互对象的子对象(默认为空即可)
Linear Mapping:基于旋转的最小角度和最大角度输出0-1的数值,以供其他脚本使用操纵其他游戏对象、动画使用
Hover Lock:锁定交互,如果不勾选 那么手柄离开感应区域后便不再进行交互。勾选该选项只要手柄按键不松开即使离开了感应区域一样可以进行交互
Limited Rotation:勾选后限定物体在最小角度和最大角度之间进行旋转
Min Angle MaxAngle:最小和最大旋转角度
Freeze On Min/Max:达到最小/最大角度后冻结
Force Start:是否需要开始角度
StartAngle:开始角度(需要勾选Force Start)
简单设置好属性我们运行程序即可推动门
最后附上学习地址的链接:SteamVR交互课程