タッチスクリーンを使用してオブジェクトの周りをカメラで回転しようとしています。 Y軸回りの回転がうまくいきます(X軸は無効です)。 X軸周りの回転は本当に奇妙です。オブジェクト(そのロケット)がより高いrocket.position().y++ & scene.camera().position.y++
になると、x軸周りの回転が大きくて奇妙になります。ロケットがrocket.position().y = 500; & scene.camera().position.y = 500;
で止まったら、x軸を中心に回転できず、代わりにオブジェクトをズームインまたはズームアウトします。両方の軸が地獄のように変わった。タッチを使ってオブジェクトを回転させるAndroid min3D
initScene
私はロケットの中心を見るようにカメラを設定しました。
ここに私のコードです:
initScene:
scene.camera().position.z = 90;
scene.camera().target = raketeOBJ.position();
onTouchEvent:
public boolean onTouchEvent(MotionEvent me) {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
xpos = me.getX();
ypos = me.getY();
return true;
}
if (me.getAction() == MotionEvent.ACTION_UP) {
xpos = -1;
ypos = -1;
touchTurn = 0;
touchTurnUp = 0;
return true;
}
if (me.getAction() == MotionEvent.ACTION_MOVE) {
float xd = me.getX() - xpos;
float yd = me.getY() - ypos;
xpos = me.getX();
ypos = me.getY();
touchTurn = xd/-200f;
touchTurnUp = yd/-200f;
return true;
}
try {
Thread.sleep(15);
} catch (Exception e) {
}
return super.onTouchEvent(me);
}
UpdateScene:
if (touchTurn != 0) {
scene.camera().position.rotateY(touchTurn);
touchTurn = 0;
}
if (touchTurnUp != 0) {
scene.camera().position.rotateX(touchTurnUp);
touchTurnUp = 0;
}