Раджавали RotateAnimation3D
Используя главную ветвь Раджавали, я могу заставить свою камеру вращаться вокруг оси, используя
mRotateAnimation = new RotateAnimation3D(axis, angle);
mRotateAnimation.setDuration(4000);
mRotateAnimation.setTransformable3D(getCurrentCamera());
mRotateAnimation.setInterpolator(new DecelerateInterpolator(5f));
registerAnimation(mRotateAnimation);
mRotateAnimation.play();
при условии, что я НЕ установил getCurrentCamera().setLookAt(0,0,0). Если я делаю setLookAt, я вообще не получаю вращения.
При использовании версии 0.9 эквивалент будет казаться
mRotateAnimation = new RotateAnimation3D(axis, angle);
mRotateAnimation.setDuration(4000);
mRotateAnimation.setTransformable3D(getCamera());
mRotateAnimation.setInterpolator(new DecelerateInterpolator(5f));
mRotateAnimation.start();
но это, похоже, не работает независимо от setLookAt(). Я вообще не получаю вращения. Если я изменю getCamera() на другой объект, вращение будет работать так, как я ожидал.
Чего мне не хватает с этим? Любая помощь высоко ценится.
Благодарю.
1 ответ
Я использовал RotateAnimation3D для поворота моего объекта в моем классе с кодом ниже в новой версии rajawali:
mAnim = new RotateAnimation3D(Axis.Y, 360);
mAnim.setDuration(16000);
mAnim.setRepeatMode(RepeatMode.INFINITE);
getCurrentScene().registerAnimation(mAnim);
mAnim.setTransformable3D(mObject);
mAnim.play();
и это работает для меня! Я думаю, что вы должны изменить mObject, чтобы получить currentCamera() для желаемого результата