开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

手势交互

手势交互

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