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);
}

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

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

4

1 回答 1

0

我遇到了同样的问题,并通过修改RajiwaliSideBySideRenderer班级和mCameraLeft公开来克服这个问题mCameraRight,以便能够手动修改每个人的位置。

我确信有更好的解决方案,截至目前,我正试图找到一种方法,在修改其中一个摄像头时强制同时更新两个摄像头,但我仍在试图弄清楚如何。

于 2015-02-27T09:55:20.870 回答