我可以在不使用 ARFragment 的情况下在 ARCore 中旋转 3D 对象吗?
Can I rotate a 3D object in ARCore without using ARFragment?
我正在使用 Sceneform
开发一个简单的 Android 应用程序,当用户点击它时,我必须在其中旋转 3D 对象。我知道我可以在 ArFragment
内完成,但我不想为此目的使用增强现实。我只是将 Sceneform
用作 3D 查看器,用户唯一需要的交互是点击显示屏以旋转模型。是否可以在 ARCore
中不使用其增强现实恶作剧?
是的!您应该在布局中仅使用 SceneView
组件而不是 <fragment...
块,从这一点来看,一切都与 ArFragment 相同。
关于旋转:如果需要,您仍然可以使用 TransformableNode
(https://developers.google.com/ar/reference/java/sceneform/reference/com/google/ar/sceneform/ux/TransformableNode),它与 ArFragment 无关,或者您可以在点击时实现基本旋转:
node.setOnTapListener { hitTestResult, motionEvent ->
node.localRotation = Quaternion.multiply(node.localRotation, Quaternion(Vector3.up(), 180f))
}
这会将您的节点旋转 180 度。
我正在使用 Sceneform
开发一个简单的 Android 应用程序,当用户点击它时,我必须在其中旋转 3D 对象。我知道我可以在 ArFragment
内完成,但我不想为此目的使用增强现实。我只是将 Sceneform
用作 3D 查看器,用户唯一需要的交互是点击显示屏以旋转模型。是否可以在 ARCore
中不使用其增强现实恶作剧?
是的!您应该在布局中仅使用 SceneView
组件而不是 <fragment...
块,从这一点来看,一切都与 ArFragment 相同。
关于旋转:如果需要,您仍然可以使用 TransformableNode
(https://developers.google.com/ar/reference/java/sceneform/reference/com/google/ar/sceneform/ux/TransformableNode),它与 ArFragment 无关,或者您可以在点击时实现基本旋转:
node.setOnTapListener { hitTestResult, motionEvent ->
node.localRotation = Quaternion.multiply(node.localRotation, Quaternion(Vector3.up(), 180f))
}
这会将您的节点旋转 180 度。