手势交互
所有文档

          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()
          上一篇
          camera
          下一篇
          天空盒:顶