如何在ARCore和Sceneform中转换对象?

时间:2019-02-27 15:56:04

标签: java kotlin augmented-reality arcore sceneform

我使用ARCore和Sceneform在Android上构建了AR应用程序,当用户单击按钮时,我想在xyz轴上平移对象。

我该怎么做?

我试图做到这一点,当用户按下按钮时,我将使用翻译构成对象Pose,删除对象并使用翻译创建一个新对象。但是点击几下后,我有了SIG 9(kill应用)。

还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

  

您可以使用按钮和following approach在两个锚点之间转换3D对象。

  

要沿表面平移对象,应使用OnGestureListener接口及其有用的公共方法,例如:

  • onDown(MotionEvent e)
  • onFling(MotionEvent e1,MotionEvent e2,浮点速度X,浮点速度Y)
  • onLongPress(MotionEvent e)
  • onScroll(MotionEvent e1,MotionEvent e2,浮动距离X,浮动距离Y)
  • onShowPress(MotionEvent e)
  • onSingleTapUp(MotionEvent e)

下面是一个示例,说明如何使用onScroll()方法重画对象:

android.view.GestureDetector.OnGestureListener

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distX, float distY) {
   if (ptrCount < 2) {
       queuedSingleTaps.offer(motionEvent);
       return true;
   } else {
       return false;
   }
}

希望这会有所帮助。