VRTK之手柄事件监听以及重写StartUsing方法实现与物体的交互

一.VR开发中经常会用到手柄事件的监听,VRTK中提供了一个例子 VRTK_ControllerEvents_ListenerExample ,首先手柄需要添加VRTK_ControllerEvents脚本,然后通过

实现了对手柄按钮的监听,几个常用的事件:

 · TriggerPressed - 当trigger被扣下一半左右时发送事件.

 · TriggerReleased - 当Trigger从扣下一半的状态释放后发送事件.

 · TriggerTouchStart - 当trigger被扣下一点点时发送事件.

 · TriggerTouchEnd - 当trigger完全没有被扣下时发送事件.

 · TriggerHairlineStart - 当trigger扣下的程度超过了当前的hairline阈值时发送事件.

 · TriggerHairlineEnd - 当tringger释放程度超过了当前的hairline阈值时发送事件.

 · TriggerClicked - 当trigger在clicked之前扣下的过程中发送事件.

 · TriggerUnclicked - 当trigger不再一直处于clicked状态时发送事件.

 · TriggerAxisChanged - 当trigger扣下的量发生变化时发送事件.

 · ApplicationMenuPressed - 当application menu被按下时发送事件.

 · ApplicationMenuReleased - 当application menu被释放时发送事件.

 · GripPressed - 当grip被按下时发送事件.

 · GripReleased - 当grip被释放时发送事件.

 · TouchpadPressed - 当touchpad被按下的时候发送事件(比触摸的按压程度大).

 · TouchpadReleased - 当touchpad从被按下(非触碰)的状态下释放时发送事件.

 · TouchpadTouchStart - 当touchpad被触摸时发送事件 (不是点击或者摁下).

 · TouchpadTouchEnd - 当touchpad不再被触摸时发送事件.

 · TouchpadAxisChanged - 当touchpad被触摸的点改变时发送事件.

 二.重写StartUsing()实现与物体的交互

自定义脚本继承VRTK_InteractableObject,然后重写StartUsing方法

将脚本放交互物体上,在Inspector面板中进行调整

关于VRTK_InteractableObject的参数详解,网上有很多,常用的几个有:

 ·Touch Highlight Color - 高亮颜色

 ·Is Grabbable - 是否可以被抓取

 ·Hold Button To Grab - 长按抓取

 ·Grab Override Button - 设置抓取按键

 ·Is Usable - 是否可以被使用

 ·Use Override Button - 设置使用按键

图片中的脚本实现的是按Trigger键出发物体事件

手柄中需要添加

关于前三个脚本,前面的博客中有详解,最后一个VTRK_Interact Use  是与我们自定义的脚本配套使用的。

原文地址:https://www.cnblogs.com/YorkZhao/p/9081438.html

时间: 2024-11-09 20:37:44

VRTK之手柄事件监听以及重写StartUsing方法实现与物体的交互的相关文章

事件监听的三种方法

事件监听的三种方法: addTarget --用于监听一些点击.值改变等事件 代理       -- 监听一些开始.结束.选中某行等一些改变控制属性的一些事件 通知:上面都不行考虑使用通知 通知使用注意:只要监听通知就要移除通知,否则控制器销毁后,通知发送时就会找不到对象导致程序崩溃 文本框事件的监听: textfied代理只能监听开始编辑结束编辑,能否改变文字,不能监听改变文字后的情况,本项目需要 监听文本框中是否有输入,代理和addTarget都不适用. 文本框发出的三个通知: UIKIT_

Android 事件监听处理

事件监听的处理模型包含三个成员:事件源.事件以及事件监听器. 基于监听的事件处理模型一般包含几个步骤: 1.获取普通界面组件: 2.实现事件监听器类 3.将监听器对象注册给普通组件 当事件源上发生指定事件的时候,Android就会触发对应事件监听器,并由事件监听器调用相应的方法来处理事件. public class RemoteControlActivity extends Activity { EditText ipET; EditText socketET; Button button; @

[转]addEventListener() 方法,事件监听

转载  白杨-M  http://www.cnblogs.com/baiyangyuanzi/p/6627401.html addEventListener() 方法,事件监听 你可以使用 removeEventListener() 方法来移除事件的监听. 语法 element.addEventListener(event, function, useCapture); 第一个参数是事件的类型 (如 "click" 或 "mousedown"). 第二个参数是事件触

[基础控件]---状态切换控件CompoundButton及其子类CheckBox、RadioButton、ToggleButton、switch事件监听与场景使用

一.事件监听 对于普通的Button,对其进行事件监听Google官方给出了常见的三种监听方式:1.对每一个button设置事件监听器button.setOnClickListener(View.OnclickListener  listener);此种方法当button按钮较多时代码显得多.乱.不够简洁明了. 2.在Activity中实现接口View.OnclickListener,然后重写void onClick(View v)方法,在方法中通过switch(v.getId())予以区分不同

Java中的事件监听机制

鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动作发生在哪个组件上,那么该组件就是事件源对象 2.事件监听方法: addMouseListener(MouseListener ml) ;该方法主要用来捕获鼠标的释放,按下,点击,进入和离开的动作:捕获到相应的动作后,交由事件处理类(实现MouseListener接口)进行处理. addAction

关于v4包的Fragment过渡动画的事件监听无响应问题解决

项目中部分功能模块采用了单Activity+多Fragment模式,当Fragment切换时,需要在过渡动画执行完后做一些操作,通常就是在自己封装的FragmentBase中重写onCreateAnimation方法,创建一个Animation对象,并添加动画的事件监听.而最近升级了v4包后,突然发现添加的动画事件监听无响应了.通过查看源码,发现在v4包中关于Fragment管理类FragmentManagerImpl中,在获取Animation对象后,也添加了对动画的监听事件,也就覆盖了我自己

spring boot 源码赏析之事件监听

使用spring Boot已经快1年多了,期间一直想点开springboot源码查看,但由于种种原因一直未能如愿(主要是人类的惰性...),今天就拿springboot 的监听事件祭刀. springboot 中常用的事件监听主要有ApplicationStartedEvent,ApplicationEnviromentPreparedEvent,ApplicationPreparedEvent,ApplicationStoppedEvent等.用于监听springboot生命周期中的各种事件.

GUI编程笔记05:GUI事件监听机制原理和举例说明

1.事件监听机制:       A:事件源          事件发生的地方       B:事件             就是要发生的事情       C:事件处理       就是针对发生的事情做出的处理方案       D:事件监听       就是把事件源和事件关联起来 2.举例:人受伤事件. 事件源:人(具体的对象)         Person p1 = new Person("张三");         Person p2 = new Person("李四&qu

WebView使用详解(二)——WebViewClient与常用事件监听

登录|注册     关闭 启舰 当乌龟有了梦想-- 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) WebView使用详解(二)--WebViewClient与常用事件监听 2016-05-28 11:24 20083人阅读 评论(13) 收藏 举报  分类: 5.andriod开发(148)  版权声明:本文为博主原创文章,未经博主