[HTC Vive + Unity开发]——VRTK的研究——用手柄旋转物体(使用VRTK_Knob脚本)
2017-02-22 19:13
489 查看
使用VRTK包中的VRTK_Knob脚本~
该脚本的作用是:
Attaching the script to a game object willallow the user to interact with it as if it were a radial knob. The directioncan be freely set.
也就是说把该脚本挂在一个物体上,就可以用手柄旋转这个物体,旋转的方向可自定。
Direction:设置绕哪个轴旋转
Min和Max:是转一圈的范围
Step Size:每次转的步数
在场景中新建一个cube并添加碰撞盒,然后挂上该脚本,设置Direction等参数,运行后就可以用手柄转这个物体了。
—————————————————————————————————————————
然后我将这个脚本挂到了自己的模型的一个小零件上,是一个圆台形状的物体,运行时发现旋转的很诡异,好像是绕着一个别的地方旋转的,而不是模型中心。
于是分析一下VRTK_Knob
这个脚本在运行时为圆台物体添加了如下组件:
按照我的理解,大致意思是为圆台添加了一个物理属性ConfigurableJoint(可配置关节),然后Grab圆台,由于物理属性的限制,圆台会绕着一个轴运动。
这个轴不是物体的坐标中心,而是Configurable Joint中的Anchor。
参照unity圣典的解释:
Anchor:关节中心点,所有的物理模拟都使用此点作为中心进行计算。
运行时发现Anchor的Y的数值为6.737404,问题就在这里。
运行时打开since试图,查看圆台物体,发现在圆台物体的底下有一个小小的坐标轴,一开始我都没看见= =
换个角度看:
在运行中把Anchor的Y设置成0,如下
这时小轴和坐标轴就重合到了一起,旋转也就正常了。
比较省事的解决方法是改一下圆台物体的坐标轴,让它绕着Y旋转就可以了,或者自己加一个ConfigurableJoint组件而不是让脚本去加。
关于旋转圈数等的限制可以在ConfigurableJoint中设置。
该脚本的作用是:
Attaching the script to a game object willallow the user to interact with it as if it were a radial knob. The directioncan be freely set.
也就是说把该脚本挂在一个物体上,就可以用手柄旋转这个物体,旋转的方向可自定。
Direction:设置绕哪个轴旋转
Min和Max:是转一圈的范围
Step Size:每次转的步数
在场景中新建一个cube并添加碰撞盒,然后挂上该脚本,设置Direction等参数,运行后就可以用手柄转这个物体了。
—————————————————————————————————————————
然后我将这个脚本挂到了自己的模型的一个小零件上,是一个圆台形状的物体,运行时发现旋转的很诡异,好像是绕着一个别的地方旋转的,而不是模型中心。
于是分析一下VRTK_Knob
这个脚本在运行时为圆台物体添加了如下组件:
按照我的理解,大致意思是为圆台添加了一个物理属性ConfigurableJoint(可配置关节),然后Grab圆台,由于物理属性的限制,圆台会绕着一个轴运动。
这个轴不是物体的坐标中心,而是Configurable Joint中的Anchor。
参照unity圣典的解释:
Anchor:关节中心点,所有的物理模拟都使用此点作为中心进行计算。
运行时发现Anchor的Y的数值为6.737404,问题就在这里。
运行时打开since试图,查看圆台物体,发现在圆台物体的底下有一个小小的坐标轴,一开始我都没看见= =
换个角度看:
在运行中把Anchor的Y设置成0,如下
这时小轴和坐标轴就重合到了一起,旋转也就正常了。
比较省事的解决方法是改一下圆台物体的坐标轴,让它绕着Y旋转就可以了,或者自己加一个ConfigurableJoint组件而不是让脚本去加。
关于旋转圈数等的限制可以在ConfigurableJoint中设置。
相关文章推荐
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
- Unity入门系列||Unity中如何用脚本实现物体的循环移动和旋转
- unity基础开发----物体位移和旋转实用代码
- HTC Vive VR Unity 开发入门
- Unity 2D游戏开发教程之使用脚本实现游戏逻辑
- C#开发Unity游戏教程之Scene视图与脚本的使用
- HTC Vive VR房产项目开发三(添加物体提示)
- Htc Vive Sdk(OpenVR),Unity3d 开发,手柄射线
- unity 3d 鼠标旋转物体脚本
- Unity脚本,平滑跟随目标物体移动和旋转
- C#开发Unity游戏教程之Scene视图与脚本的使用
- HTC Vive 实现使用手柄上下拖动 旋转物体的功能
- HTC_VRTK_手柄发射射线获取碰撞物体信息
- Unity SteamVR插件详解一:SteamVR_Controller脚本分析+Vive控制器功能开发
- C#开发Unity游戏教程之使用脚本变量
- C#开发Unity游戏教程之使用脚本变量
- unity 用鼠标控制相机绕着物体旋转脚本
- 【VR开发】htc vive+unity 3D 简单保龄球游戏