Sceneform Android SDKを使用して、ユーザーの に基づいて X 軸上でa を回転させるためのソリューションhereに従いました。ただし、ARCore SceneViewer と同様に、Y 軸と Z 軸も回転させたいと考えています。TransformableNode
DragGesture
どうすればそれを達成できますか?
私が現在持っているものは左側にあり (X 軸でのみ回転)、必要なものは右側にあります (ARCore Scene Viewer のように、すべての軸で回転します)。
class DragRotationController(transformableNode: BaseTransformableNode, gestureRecognizer: DragGestureRecognizer) :
BaseTransformationController<DragGesture>(transformableNode, gestureRecognizer) {
// Rate that the node rotates in degrees per degree of twisting.
var rotationRateDegrees = 0.5f
public override fun canStartTransformation(gesture: DragGesture): Boolean {
return transformableNode.isSelected
}
public override fun onContinueTransformation(gesture: DragGesture) {
var localRotation = transformableNode.localRotation
val rotationAmountX = gesture.delta.x * rotationRateDegrees
val rotationDeltaX = Quaternion(Vector3.up(), rotationAmountX)
localRotation = Quaternion.multiply(localRotation, rotationDeltaX)
// *** this only rotates on X axis. How do I rotate on all axes? ***
transformableNode.localRotation = localRotation
}
public override fun onEndTransformation(gesture: DragGesture) {}
}