215
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
百度智能云AR开放平台AR场景开发指南-手势触屏交互

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/200G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>



点击这里点击这里申请百度智能云特邀VIP帐号,立即体验AR开放平台>>>

百度智能云AR开放平台AR场景开发指南-手势触屏交互

手势触屏交互

百度AR提供默认的手势触屏交互能力,并在脚本中提供丰富的自定义能力,充分满足自定义手势触屏交互的需求,主要包含交互数据获取、交互节点拾取、交互效果定制三个模块。

交互数据获取

手势在屏幕上的原生touch和识别后的手势数据都可以在脚本中设定更新回调,获取每一次手势的交互数据,touch更新配置方法如下:

local input_controller = scene:get_input_controller()
local touch_controller = input_controller:get_touch_controller()
touch_controller:set_update_handler(touch_update)
function touch_update(touch)
end

touch数据中包含坐标、相位、时间等属性,详情见TouchController接口文档。手势更新配置方法如下:

local input_controller = scene:get_input_controller()
local gesture_controller = input_controller:get_gesture_controller()
gesture_controller:set_update_handler(gesture_update)
function gesture_update(gesture)
end

手势数据包含手势种类、位置、特定手势数据等属性,详情见GestureController接口文档。

交互节点拾取

默认的交互节点拾取包括全场景拾取(默认)、根据节点热区拾取,脚本同样能够自定义节点拾取的策略,配置方法如下:

--关闭默认的节点拾取能力,改由脚本控制,设定为false后需要指定交互节点
gesture_controller:set_property_bool("default_responser_enabled", false)
gesture_controller:set_responser(NODE)

详情见GestureController接口文档。

同时,射线检测提供根据屏幕位置确定交互到的场景节点的能力,根据屏幕坐标选取场景中相交的节点,配置方法如下:

local ray_caster = scene:get_input_controller():get_ray_caster()
local ray = ray_caster:ray_from_screen(screen_point)
local hit_result = ray_caster:get_hit_result(ray, "first_hit")

相交结果可以用于设定交互节点或者其他需求,详情见RayCaster接口文档。

交互效果定制

交互效果指手势对应的场景元素交互效果,比如默认情况下:单指滑动对应模型平移、双指滑动对应模型旋转、双指靠近原理对应模型缩小放大。脚本中可以改变手势对应的交互效果,并且可以根据需求关闭交互效果,脚本中自定义所需的交互效果。配置方法如下:

--修改手势对应的交互效果,例子为修改为双指滑动对应平面平移
gesture_controller:set_property_string("continuous_interaction_mapping", "gesture_two_finger_scroll-interaction_plane_move")
--关闭引擎手势交互响应,需要在手势更新回调中实现
gesture_controller:set_property_bool("default_continuous_interaction_enabled", false)

详情见GestureController接口文档。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!