没有合适的资源?快使用搜索试试~ 我知道了~
首页HTC vive开发日记
资源详情
资源评论
资源推荐

HTC Vive 之 Unity3d 开发日记@1
这一篇算是一个中级教学我从中学到了不少知识但是缺乏对代码的深度解析
而这个将是我接下来要做的当然我希望阁下可以抽时间对这些资源进行深入
的理解这将有利于我们之后可以一起来探讨
如图我们要实现的是通过代码来实现对手柄的全面掌控重点在于交互至于如
何开发一款 游戏是在实现交互以后需要探讨的事情我们一步一个脚印来探
索
第一步如图我们已经导入了 下面的 绿色图标表
明 的硬件也已经准备就绪这是 场景也是我
们展开分析的入手点这个测试很简单就是你按下 的时候手柄上会实
例化一个圆球 的结合体当然松开 的时候这个结合体就会脱离
手柄当然你还可以施加一个扔的动作这样的话结合体会有一个对应的加速度

手柄是 的重要交互手段我们通过第一个图片应该对其有一个直观的
了解了总共是九个按钮
第一个是菜单按钮!
"#$% 分别对应的是 &'()'( 的上下左右有时候对应的
是 *+, 手柄的▲-* 囗四个按钮或者摇杆!
. 对应的是系统按钮)!
/ 是 )扳机对应大多数 0 游戏里面的枪械的 )0!
1 对应的 2')紧握在手柄的左右两侧各有一个有时候我们用它来翻页!
3 其实是 &'()'( 在 4 轴的一个延伸相当于是点击事件
&
接下来就可以直接上代码了
567!
6 !
89 ':6';:&(-<==>
'?+
@
))预设用于投掷的物体
'2-<';!
))位于手柄上的刚体也就是预设物体出现的地方
'((6!
))追踪的设备这里是我们的手柄
&(-<&(-<!
))固定关节
0,(A<!

(B&:=
@
))获取追踪的设备即手柄
&(-<C2 'D&(-<E:=!
F
(0,(5'(:=
@
))获取手柄的输入也就是用户的输入
(C G'::=&(-<(,=!
))如果关节为空 且 用户按下扳机
;:<CCHH
(2I: +?&==
@
))把预设实例化并设置其位置在手柄上的指定位置这个指定位置就是
手柄上的那个圈圈
C2-<G:';=!
;'C;'!
))把关节组件添加到实例化的对象上链接的位置就是这个刚体添加
这个组件的目的就是为了当你松开 的时候分开手柄和预设物体
))这个 0,(A 组件实际上就是一个关节作用是链接两个物体
<CB(( 'D0,(AE:=!
<(+(6C!
F
))又如果关节不为空 且 手柄上的扳机 松开的时候
;:<CHH
(25': +?&==
@
))获取关节上的游戏对象获取其刚体
C<-<!
((6C2 'D((6E:=!
))立即摧毁关节并置为空
-<I6G(:<=!
<C!
))J% 秒后摧毁该对象
-<I6:J%K;=!
))L('6''6M
&(-<;'
))((;''6
))('((
'
))6'(('
))大概意思是我们也许应该在正确的位置应用
&(-<;' 和 (;' 之间的偏移量到物理模
拟中去
))然而如果那样的话我们就想要预测和渲染动作同样数量的视觉位置
))原始位置有的话就是原始位置没有的话取其父类

C&(-<N&(-<
&(-<;'!
;:C=
@
))取其速度和角度
((66C
;:(6=!
((66C
;:(6=!
F
@
((66C(6!
((66C(6!
F
))最大角速度
((6,B6C
((66(!
F
F
F
-&在下已经注释得非常清楚了重点在于 )扳机的交
互(2I: +?&=按下扳机
时返回真和 (25': +?&=松
开扳机时返回真
更进一步我们通过解析 &( 来看看其他按钮事件
567!
!
))结构体点击事件参数
' &(7B
@
))控制器索引
'G(,!
))标记
'O!
))控制板上的坐标
'O'(*'(P!
F
))委托点击事件句柄
'(( &(7(:<( &(7B
=!
'&( ?+
@
))控制器索引

'G(,!
))控制器状态
' !
))按下扳机与否
'(C;!
))这个是正面最下方的按钮对应 系统
'(C;!
))这个是最上方的菜单按钮
'(C;!
))这个 '( 控制板是中间的圆形触摸区域功能比较多
''((C;!
''((C;!
))这个是负责判断是否握住了手柄
'''(C;!
))菜单点击事件句柄
' &(7(?+ &(!
' &(7(?+5&(!
))扳机扣动事件句柄
' &(7( &(!
' &(7(5&(!
)) 点击事件句柄
' &(7( &(!
))触摸板点击事件句柄
' &(7(( &(!
' &(7((5&(!
))触摸板触摸事件句柄
' &(7(((!
' &(7((5(!
))抓取事件句柄
' &(7(2''(!
' &(7(5''(!
))5;Q
(:=
@
))如果没有 &(-< 组件则添加该组件
;:2 'D&(-<E:=CC=
@
-<B(( 'D&(-<E:=!
F
))索引赋值
2 'D&(-<E:=(,C
:&(-<7G(,=G(,!
))如果有 (?( 组件则对该组件索引进行赋值
;:2 'D(?(E:=C=
@
2 'D(?(E:=(,C
:&(-<7G(,=G(,!
F
F
剩余63页未读,继续阅读

















AAAAA星
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0