首页 文章

如何在Android的Rajawali虚拟现实框架中移动相机?

提问于
浏览
2

这是Rajawali VR示例的链接:

https://github.com/MasDennis/RajawaliVR

我想添加一个功能,用户可以在场景中移动相机,就像反恐精英等FPS游戏一样 .

所以,我在RajawaliVRExampleActivity的onCreate方法中编写了这段代码:

/**this is the method*/ 
@Override
public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    super.onCreate(savedInstanceState);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


    mRenderer = new RajawaliVRExampleRenderer(this);
    mRenderer.setSurfaceView(mSurfaceView);
    setRenderer(mRenderer);

    /**this is what I write*/
    final Handler handler = new Handler();
    Runnable runnable = new Runnable() {
        int i = 1;
        @Override
        public void run() {
            mRenderer.getCurrentCamera().setZ(i--);
            Log.i("i = ", ""+i);
            handler.postDelayed(this,2000);
        }
    };
    handler.postDelayed(runnable,2000);
}

我认为它会在我运行程序后每两秒向前移动一次,但左侧和右侧之间存在差异 .

那么,谁能告诉我如何正确移动相机?

1 回答

  • 0

    我有同样的问题,并设法通过修改 RajiwaliSideBySideRenderer 类并使 mCameraLeftmCameraRight 公开来克服该问题,以便能够手动修改每个的位置 .

    我确信有一个更好的解决方案,到目前为止,我正试图找到一种方法,当其中一个摄像机被修改时,同时强制更新两个摄像机,但我仍然想弄清楚如何 .

相关问题