我正在尝试在Android上执行以下操作(然后可能在iOS上执行以下操作),任何建议都将受到赞赏:
在Native Android视图上覆盖UnityPlayer视图,其中仅绘制3D对象且没有相机背景(透明背景)
我目前的进展:
到目前为止,我设法将我的Unity3D项目作为库用于另一个Android项目,并将UnityPlayer视图分配给另一个Android视图顶部的FrameLayout,但相机背景颜色显示...我尝试将clear flag选项更改为仅深度但它不起作用。
我还设法使用单独的GLSurfaceView,我将类扩展为UnityPlayer并将GLSurfaceView.Renderer实现为渲染器,但我仍然得到不透明的背景。
我的代码如下:
// the class extending the player
class CustomUnityPlayer extends UnityPlayer implements GLSurfaceView.Renderer {
public CustomUnityPlayer(ContextWrapper context) {
super(context);
}
public void onDrawFrame(GL10 gl) {
super.onDrawFrame(gl);
}
}
// inside OnCreate function:
m_UnityPlayer = new CustomUnityPlayer(this);
int glesMode = m_UnityPlayer.getSettings().getInt("gles_mode", 1);
m_UnityPlayer.init(glesMode, false);
mUnityView = new GLSurfaceView(getApplication());
mUnityView.setEGLContextClientVersion(2);
mUnityView.setZOrderOnTop(true);
mUnityView.setZOrderMediaOverlay(true);
mUnityView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mUnityView.setRenderer(m_UnityPlayer);
mUnityView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.activity_fullscreen);
FrameLayout layout = (FrameLayout) findViewById(R.id.UnityView);
LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
layout.addView(mUnityView, 0, lp);
我错过了什么,甚至可能吗?任何帮助将不胜感激。
非常感谢
答案 0 :(得分:1)
经过一些尝试...删除mUnityView.setZOrderMediaOverlay(true);为我做了诀窍(适用于Unity 4.2及以下版本......不适用于Unity 4.3及以上版本)