나는 (다음 아마도 iOS의) 안드로이드에서 다음을 수행하려고하고 조언을 이해할 수있을 것이다 :투명한 배경을 가진 서브 뷰인 UnityPlayer? (유니티 게임 엔진)
에만 3D 객체가 그려지는 기본 안드로이드보기의 상단에오버레이 UnityPlayer보기 및
지금까지 다른 안드로이드 프로젝트에 라이브러리로 내 Unity3D 프로젝트를 사용하고 다른 안드로이드도 있지만 카메라의 상단에 FrameLayout이에 UnityPlayer보기를 할당 할 관리 : 나의 현재 진행
에는 카메라 한 배경 (투명 배경) 배경색 표시 중 ... clear 플래그 옵션을 깊이 만 변경하려고 시도했지만 작동하지 않았습니다.
또한 UnityPlayer를 확장하고 GLSurfaceView.Renderer를 렌더러로 구현하는 클래스를 할당 한 별도의 GLSurfaceView를 사용할 수 있었지만 여전히 불투명 한 배경을 얻고 있습니다. 내가 모르는 뭔가가
// 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);
오전 그것도 가능하다 :
내 코드는 다음과 같이? 어떤 도움을 많이 주시면 감사하겠습니다. (참) mUnityView.setZOrderMediaOverlay을 제거하는 몇 가지 시도 후
질문 작성자/답변자. 나는 당신의 질문에서 당신이 말한 것을 할 수 있다고 읽었지 만, 유니티 4.3에서 한 장면에 투명한 배경을 가질 수 없었고, 그렇게하려한다면 검정색 배경이 생길 것입니다. 당신이 제공하는이 예제가 Unity 4.2를위한 것입니까? Unity 4.3 이상에서이 작업을 수행 할 수 있습니까? 감사합니다. – JavaZava
@JavaZava 네 이것이 unity 4.2 이하에서만 작동합니다 ... unity 4.3이 아니기 때문에 뷰가 어떻게 구성되었는지 (자바에서 C++로 옮겨갔습니다) ... 나는 그것을 해명하기 위해 답을 편집 할 것입니다 – YNK