这是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 回答
我有同样的问题,并设法通过修改
RajiwaliSideBySideRenderer
类并使mCameraLeft
和mCameraRight
公开来克服该问题,以便能够手动修改每个的位置 .我确信有一个更好的解决方案,到目前为止,我正试图找到一种方法,当其中一个摄像机被修改时,同时强制更新两个摄像机,但我仍然想弄清楚如何 .