首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VR开发--SteamVR框架工具(4):可交互对象+抓取交互对象+使用可交互对象+自动抓取可交互对象

Touch Interactions:触摸交互 Highlight On Touch:如果勾选,这个对象在控制器触摸就会高亮。...如果控制器试着施加一个高于这个阈值的力到对象上(从另一个对象上拉或者推另一个对象),然后保持对象到抓取 控制器的关节就将断开并且对象将不能再被抓起了。...注意: 1、控制器对象也需要添加VRTK_InteractTouch 脚本用来确定何时一个可交互对象触摸到。只有有效的触摸对象才能抓取。...: 一个有效对象开始使用时发出 ControllerUnuseInteractableObject: 一个有效对象停止使用时发出 相关例子:框架工具中006/008场景 5、VRTK_ObjectAutoGrab...这在两个控制器都需要抓取同样的对象是需要的,因为单个对象 不能不同的控制器同时抓取。如果抓取的对象一个预制就也需要被复制,因为需要存在于场景中被抓取。 相关例子:框架工具中026场景 ?

2.3K10

JavaScript 编程精解 中文第三版 十五、处理事件

例如,如果一个段落上按下鼠标,移动到另一个段落上释放鼠标,"click"事件会发生在包含这两个段落的元素上。...为此,我们可以使用buttons属性(注意复数形式),告诉我们当前按下的按键。 它为零,没有按下按键。 按键按住,其值是这些按键的代码总和 - 左键代码为 1,右键为 2,中键为 4。...触摸屏与鼠标的工作方式不同:没有多个按钮,手指不在屏幕上不能跟踪手指(来模拟"mousemove"),并且允许多个手指同时在屏幕上。...手指开始触摸屏幕,您会看到'touchstart'事件。 它在触摸中移动,触发"touchmove"事件。 最后,停止触摸屏幕,您会看到"touchend"事件。...相反,它们的事件对象拥有touches属性,拥有一个类数组对象,每个对象都有自己的clientX,clientY,pageX和pageY属性。 你可以这样,在每个触摸手指周围显示红色圆圈。

5.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

《Motion Design for iOS》(四十二)

很喜欢的Loren构建的一个关于界面的东西可能不是每个人都明显喜欢的:喜欢每个按钮在用户按下立即切换到一个不同的状态的样子。绝对不会延迟。...iOS中的每个界面的控制都从UIResponder继承了这些方法,它是一个处理所有触摸控制事件的父类。有了子类,就可以塞一些自己的代码来在这些方法启动的时候运行。...子类化一个苹果提供的对象,比如UIButton,做一个好的城市居民并确保调用super的关于这些方法的实现是很重要的,因为我们不知道苹果在这两个方法中需要运行什么代码,而且不想破坏按钮的默认行为。...使用Pop来构建好的响应动画去关联触摸动作一个聪明的做法是看看是否已经有一个Pop动画关联到这个视图或者layer了。如果有,只要更新已经存在的动画的toValue属性就可以了。...0.8的toValue以及触摸结束的1.0的toValue,你就可以猜到整个动画会在用户点击按钮稍微收缩按钮的尺寸,然后会在他们停止触摸弹回完整的尺寸。

32110

View编程指南

view对象的实际绘图代码尽可能少地调用,并且调用代码,结果Core Animation缓存,并在稍后重用。 重用已经呈现的内容消除了通常需要更新view的昂贵的绘图周期。...一个view包含另一个view,两个view之间会创建一个父子关系。关系中的子view称为subview,父View称为superview。...View层次结构中的排列也决定了应用程序如何响应事件。当在特定view内发生触摸,系统将带有触摸信息的事件对象直接发送到该view进行处理。...view的content mode在确定如何使用view的可拉伸区域方面也起着重要作用。仅content mode会导致View的内容缩放才使用可伸缩区域。...滚动停止,您可以将view返回到之前的状态,并根据需要更新内容。

2.2K20

移动端的touch事件处理

touchend事件:手指从屏幕上离开的时候触发。  touchcancel事件:系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。...TouchList是一个只读的类数组对象表示在当前的touch事件中,与触摸屏的接触点的个数,比如:如果你当前是三根手指在同时在触摸屏上,那么每一根手指都会有一个相对应的touch对象,来记录对应手指的操作相关的信息...更让疑惑的是,此时,这三个属性,都能正确的获取到触点的个数,有几根手指,就能有在各个属性中,就会保存多少个touch对象。属性属性值touches保存当前一个触摸个数的列表。...must be a list of the touch points that have just been removed from the surface. )touches属性的解释,很明显,就是一个事件触发...从上面的两点,也可以理解到,这三个属性之间的差距,就拿touchend事件的情况来说明吧(这个比较好理解),touchend触发,手指离开屏幕了,所以此时的touches和targetTouches

1.6K20

【IOS开发基础系列】UIScrollView专题

手指触摸后,scroll view会暂时拦截触摸事件,使用一个计时器。...滚动视图必须知道内容视图的大小,以便于知道什么时候停止;一般而言,滚动出内容的边界,它就返回了。         ...某些对象是用来管理内容显示如何绘制的,这些对象应该是管理如何平铺显示内容的子视图,以便于没有子视图可以超过屏幕的尺寸。就是当用户滚动,这些对象应该恰当的增加或者移除子视图。          ...一个滚动视图也可以控制一个视图的缩放和平铺。当用户做捏合手势,滚动视图调整偏移量和视图的比例。手势结束的时候,管理视图内容显示的对象,就应该恰当的升级子视图的显示。...手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。

38430

iOS应用程序生命周期(前后台切换,应用的各种状态)详解

3、响应中断 3.1 一个基于警告式的中断发生,比如有电话打进来了,这是程序会临时进入inactive状态,这用户可以选择如何处理这个中断,流程如下图: ?...按锁屏键也是另外一种程序的中断,当你按下锁屏键,系统屏蔽了所有触摸事件,把app放到了后台,这时app状态是 inactive,并进入后台。 3.2 有这些中断,我们的app该怎么办呢?...我们应该在applicationWillResignActive:方法中: 停止timer 和其他周期性的任务 停止任何正在运行的请求 暂停视频的播放 如果是游戏那就暂停 减少OpenGL ES的帧率...UIApplication对象在程序启动启动main run Loop,处理事件和更新视图的界面。看Main Run Loop就知道,它是运行在程序的主线程上的。...UIApplication对象是第一个接收到时间的对象决定事件如何处理。触摸事件分发到主窗口,窗口再分发到对应出发触摸事件的View。其他的事件通过其他途径分发给其他对象变量做处理。

4.5K111

View编程指南(三)

将subview添加到另一个View,UIKit会通知superview和subview。...确保对象保留和正确释放的最好方法是使用声明的属性。 tag是减少硬编码依赖性并支持更加动态和灵活的解决方案的有用方法。你可以使用它的tag来定位而不是存储一个指向view的指针。...您的应用程序随后加载,您将重新创建您的view并使用保存的tag列表来设置每个view的可见性,从而将您的view层次结构返回到之前的状态。...触摸事件发生,window将相应的事件对象分派到发生触摸的view。如果你的view对一个事件不感兴趣,它可以忽略,或者把传递给响应者链,由另一个对象处理。...处理触摸事件,UIKit使用UIView的hitTest:withEvent:和pointInside:withEvent:方法来确定触摸事件是否发生在给定view的边界内。

1.7K30

javaScript — touch事件详解(touchstart、touchmove和touchend)

大家好,又见面了,是你们的朋友全栈君。...下面具体说明: touchstart事件:手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。 touchmove事件:手指在屏幕上滑动的时候连续地触发。...touchend事件:手指从屏幕上离开的时候触发。 touchcancel事件:系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。...(返回当事件触发,鼠标指针的水平坐标)、clientY(返回当事件触发,鼠标指针的垂直坐标)、screenX(某个事件触发,鼠标指针的水平坐标)和screenY(返回某个事件触发,鼠标指针的垂直坐标...targetTouches:特定于事件目标的Touch对象的数组。 changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组。 每个Touch对象包含的属性如下。

1.6K20

HTML5移动端开发的常用触摸事件

大家好,又见面了,是你们的朋友全栈君。...下面具体说明:   touchstart事件:手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。   touchmove事件:手指在屏幕上滑动的时候连续地触发。...touchend事件:手指从屏幕上离开的时候触发。   touchcancel事件:系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。   ...(返回当事件触发,鼠标指针的水平坐标)、clientY(返回当事件触发,鼠标指针的垂直坐标)、screenX(某个事件触发,鼠标指针的水平坐标)和screenY(返回某个事件触发,鼠标指针的垂直坐标...targetTouches:特定于事件目标的Touch对象的数组。   changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组。 每个Touch对象包含的属性如下。

1.6K10

iOS 中的事件响应

事件来由:UITouch 触摸 创建 每个手指每一次触摸屏幕,对应生成一个 UITouch 对象。多个手指先后触摸,系统会根据触摸的位置判断是否更新同一个 UITouch 对象。...若两个手指一前一后触摸一个位置 (即双击),那么第一次触摸生成一个 UITouch 对象,第二次触摸会更新这个 UITouch 对象,这是该 UITouch 对象的 tapCount 属性值从 1...:手势识别器已接收到导致取消连续手势的触摸; failed:手势识别器收到了一个无法识别为手势的多点触控序列; recognized:手势识别器接收到一个多点触控序列,并将其识别为的手势。...当值为 YES ,手势识别器先接收 touch 事件进行手势识别,识别过程中 hit-test view 的触摸事件会先 UIWindow hold 住,手势识别成功 hit-test view...的触摸事件不会调用,手势识别失败才开始调用 touchesBegan 函数。

2.6K11

cocos creator鼠标键盘事件总结

最近忙着新项目,要着手学习Cocos Creator,翻遍网上资料,做一下总结,下面是觉得写的不错文章,不用再去官网一个个查阅了,后期再遇到相关的知识在这篇文章下面添加,读者如果有其他方法或者本片文章没有提到过的...系统提供的触摸事件类型如下: 枚举对象定义 对应的事件名 事件触发的时机 cc.Node.EventType.TOUCH_START 'touchstart' 手指触点落在目标节点区域内 cc.Node.EventType.TOUCH_MOVE...鼠标和触摸事件冒泡 鼠标和触摸事件均支持节点树的事件冒泡 A节点拥有一个子节点B,B拥有一个子节点C。假设开发者对A、B、C都监听了触摸事件。...除了根据节点区域来判断是否分发事件外,鼠标和触摸事件的冒泡过程与普通事件的冒泡过程并没有区别。所以,调用 event 的 stopPropagation 函数可以主动停止冒泡过程。...,有可能随时修改 如何定义输入事件 除了键盘、设备重力传感器事件是通过函数 cc.systemEvent.on(type, callback, target) 注册以外 其他的例如:鼠标事件与触摸事件请参考系统内置事件

2.2K51

touchesBegan 触摸事件

大家好,又见面了,是你们的朋友全栈君。...,通过forin循环来遍历NSSet中的每一个元素,当用户用一根手指触摸屏幕,会创建一个与手指相关联的UITouch对象, 保存着跟本次手指触摸相关的信息,比如触摸的位置、时间、阶段, 手指离开屏幕...1、属性: 1)获取触摸产生所处的窗口 @property(nonatomic,readonly,retain) UIWindow *window; 2)获取触摸产生所处的视图 @property...,单位是秒 @property(nonatomic,readonly) NSTimeInterval timestamp; 5)获取当前触摸事件所处的状态 触摸事件在屏幕上有一个周期,即触摸开始、触摸点移动...类 UIEvent:成为事件对象,记录产生的时刻和类型,事件对象中包含于当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象

78020

游戏开发中的物理之使用Area2D

您需要知道两个物体已触摸但不需要物理碰撞,可以使用区域来通知您该联系人。 例如,假设我们正在为玩家捡硬币。硬币不是坚固的物体-玩家不能站立或推动-我们只希望它在玩家触摸消失。...如果播放器在另一个区域,请使用area_entered。...玩家在该区域之外,敌人无法“看到”。 “安全摄像机”-在具有多个摄像机的较大级别上,将区域附加到每个摄像机并在播放器进入时激活它们。 有关在游戏中使用Area2D的示例,请参见您的第一个游戏。...区域重叠,将按优先级顺序进行处理(优先级较高的区域将首先处理)。有四个替代选项: 合并-区域将其值添加到到目前为止已计算的值。 替换-替换物理属性的区域,优先级较低的区域将被忽略。...线性阻尼-物体停止移动的速度-每秒损失的线速度。 角阻尼-物体停止旋转的速度-每秒损失的角速度。 点重力 重力点属性使您可以创建“引子”。

72210

求职笔记-iOS篇

前言 今年年初求职,整理、回顾了学习iOS开发以来收获的知识,此篇为当时的笔记。 插一段对面试的看法。...3、如何对真机的crash日志进行分析? 4、对RunLoop的理解? 5、对象回收Weak指针自动置为nil的实现原理? 6、常见的持久化实现方法?...];将被转换为:objc_msgSend(receiver, selector); 带参数的情况是:objc_msgSend(receiver, selector, arg1, arg2, …); 一个对象发送消息...对象回收Weak指针自动置为nil的实现原理 Runtime维护着一个Weak表,用于存储指向某个对象的所有Weak指针; Weak表是Hash表,Key是所指对象的地址,Value是Weak指针地址的数组...UIApplication对象是第一个接收到时间的对象决定事件如何处理。触摸事件分发到主窗口,窗口再分发到对应出发触摸事件的 View。其他的事件通过其他途径分发给其他对象变量做处理。

1.2K60

DOM事件基本概念大总结(前端必备)

DOM2 级事件处理 直接调用该 dom 对象的事件属性,并将相应的执行函数赋予 addEventListener() 和 dom.on(事件) = 函数 利用 dom 对象的事件属性直接赋予一个执行函数...DOM 事件对象 必定会传一个 event 对象给执行函数。可以直接作为参数使用。...焦点事件标准不一,但是 DOM3 统一了一个标准并且规定了的发生顺序 一个元素移动到另一个元素会依次触发以下事件;一般 blur 与 focus 常见 focusout 在失去焦点元素上触发...mousedown 按下鼠标触发 mouseup 释放鼠标按键触发 click 点击,只有按下事件和放开事件发生后才会触发,只是按下不会触发 dblclick 双击,且仅连续两次 click 触发...该事件可能替代 deviceorientation devicemotion 触摸与手势事件 这一类事件是移动设备的事件核心 触摸事件 touchstart 手指触摸屏幕触发 touchmove

1.8K20

UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

但是,这两个对象之间的交互仍然存在不太正确的地方。 屏障认为是不可移动的,但是两个物体在当前配置中碰撞,屏障会被打破位置并开始向屏幕底部旋转。...现在需要一个不同的方法来解决问题。 由于障碍视图是不可移动的,所以动力学引擎不需要知道的存在。 但是如何检测到碰撞?...因此,如果以编程方式更改对象的框架或转换属性,则可以预期这些值将被覆盖。 这意味着处于动态的控制之下,不能使用变换来缩放对象。...另外,还可以设置一个附件行为,以创建用虚拟弹簧附加一对对象的效果。 构建并运行; 原始方块碰到屏障,应该会看到一个新的方块,如下所示: ?...首先,检查是否存在现有的快照行为并将其删除。 然后创建一个新的捕捉行为,将方块对齐到用户的触摸位置,并将其添加到动画制作工具中。 构建并运行应用程序。

1.8K30

深入理解RunLoop及在开发中的应用

Source0:非基于端口port,例如触摸,滚动,selector选择器等用户触发的事件;(只包含了一个回调函数,并不能主动触发事件) Source1:基于端口port,一些系统事件; (包含了一个...mach_port 和一个回调函数,用于通过内核和其他线程相互发送消息。...包含了一个时间长度和一个回调函数。其加入到 RunLoop ,RunLoop会注册对应的时间点,当时间点到时,RunLoop会被唤醒以执行那个回调。...会进入另一个Mode 模式UITrackingRunLoopMode 下,在该模式下,定时器就会停止不在滚动 UITextView , 定时器会重新开始。...监控应用卡顿 有时我们在滑动列表,感觉很卡,特别是列表上有很多图片要显示如何解决卡顿呢,因为我们现在加载图片用的SDWebImage,源码中已经处理了该问题,所以有时我们滑动列表很顺畅。

1.3K20

UI篇-UIResponder之事件传递和响应精析

这些状态包括点击开始、移动、停止不动、结束和取消五个状态。每次点击发生的时候,点击对象都放在一个集合中传入UIResponder的回调方法中,我们通过集合中对象获取用户点击的位置。...——>redview对象 //************华丽分割线 便于阅读*********** 事件的传递其实就是在事件产生与分发之后如何寻找最优响应视图的一个过程。...其中涉及到了UIView中的两个方法(可以重写),hitTest返回YES才会调用这个View的 Touch事件,因为如果返回NO,则当前View排除在相应链之外了。 ?...第一响应者是应用程序中当前负责接收触摸事件的响应者对象(通常是一个UIView对象)。...前一个方法使应用程序完全停止接收触摸事件消息,第二个方法则重启消息的接收。某些时候,您的代码正在执行动画,可能希望关闭事件的传递。

2.4K30
领券