我正在尝试在 Android 上执行以下操作(然后可能在 iOS 上),任何建议将不胜感激:
在原生 Android 视图之上覆盖 UnityPlayer 视图,其中仅绘制 3D 对象且没有相机背景(透明背景)
我目前的进展:
到目前为止,我设法将我的 Unity3D 项目作为库使用到另一个 Android 项目中,并将 UnityPlayer 视图分配给另一个 Android 视图顶部的 FrameLayout,但相机背景颜色显示...我尝试将清除标志选项更改为仅深度但它没有不行。
我还设法使用了一个单独的 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);
我错过了什么,甚至有可能吗?任何帮助都感激不尽。
非常感谢