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

产品推荐:

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

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

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



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

百度智能云AR开放平台使用指南-AR场景开发专题-手势交互

手势交互

手势交互可根据项目需求开启或关闭,每个手势交互之间都是相对独立的存在,目前百度AR支持的手势交互有:单击、双击、长按、捏合、单指平移、双指旋转、滑动等。

滑动手势可以通过lua层回调事件实现手势操作后想要出现的效果,其它手势目前还无法获取手势操作后的回调事件,后续将逐步开放。

-- json文件配置项
"userInteraction": {
    "disableAll": 0,
    "disablePinch": 0,
    "disableClick": 0,
    "disableScroll": 0,
    "disbleLongPress": 0,
    "disableSingleFingerScroll": 0,
    "disableTwoFingerScroll": 0,
    "disableDoubleClick": 0,
    "enableTouchZone":1
},

单击

单击接口 : " disableClick " : 0

双击

双击接口 : "disableDoubleClick": 0

长按

长按接口 : "disbleLongPress": 0

捏合

捏合接口 : "disablePinch": 0

单指平移

单指平移接口 : "disableSingleFingerScroll": 0

双指旋转

双指旋转接口 : "disableTwoFingerScroll": 0

滑动

  • 滑动调用接口: scene.on_touch _event = function(event_type, event_x, event_y)
  • event_type: EventType.Scroll | EventType.ScrollDown | EventType.ScrollUp
scene.on_touch_event = function(etype, ex, ey)
    if (etype == ESCROLL_UP) then
        scene.write1.particle.emit_status = "0"
        scene.write2.particle.emit_status = "0"
        isscroll = 0
        ARLOG("ESCROLL_UP")
        return
    end
    if (etype == ESCROLL) then
        local pos = scene:unproject(ex, ey, 200)
        calcuate_diff(pos.x, pos.y, pos.z)
        scene.write2.particle.emitter_position = pos.x .. "," .. pos.y .. "," .. pos.z
        scene.write2.particle.emit_status = "1"
        return
    end
end

热区设定

开启热区需要配合多个接口参数进行设置,详细请参考场景配置API。

根据项目的场景需求,开启热区的接口也可在Lua层动态配置其开关。

复位状态

双击屏幕或点击快速复位按钮,模型复现在当前最佳手机姿态屏幕位置。

  • 位置及姿态初始化:通过设定复位按钮的方式(该方法仅适用于用户手势交互后,无法转动到初始位置)。

复位按钮图

-- JSON 配置点击按钮 :
{
    "name": "reset",
    "type": "plane",
    "visible": 1,
    "touchable": 1,
    "material":
    {
        "common":
        {
            "defaultShaderName": "planeShader",
            "textureList": [
            {
                "textureName": "res/texture/reset.png"
            }]
        }
    },
    "hudDisplay":
    {
        "marginLeft": 0.94,
        "marginTop": 0.5,
        "screenRatio":
        {
            "screenWidthRatio": 0.12
        }
    },
    "transparentObject": 1,
    "rotation": "90,0,0",
    "children": []
}
-- Lua 配置 :
                	app:relocate_current_scene()


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

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