资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

手势交互

手势交互

手势交互可根据项目需求开启或关闭,每个手势交互之间都是相对独立的存在,目前百度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()
上一篇
camera
下一篇
天空盒:顶