Я использую Unity
в своем приложении для Android. Я экспортировал проект Android из Unity, а затем импортировал его в Android Studio.
У меня есть следующее действие xml.
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fbfbfb"
android:orientation="vertical">
<FrameLayout
android:id="@+id/unity_scene"
android:layout_width="260dp"
android:layout_height="390dp"
android:background="@drawable/mobile_wallpaper"
android:layout_centerInParent="true" />
<Button
android:id="@+id/button"
android:layout_width="52dp"
android:layout_height="78dp"
android:layout_below="@id/scene"
android:layout_centerInParent="true" />
</RelativeLayout>
</FrameLayout>
Я добавляю UnityPlayer
к unity_scene
FrameLayout
в этой деятельности. Экземпляр UnityPlayer уже присутствует в проекте Android, экспортированном из Unity
.
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
binding.scene.addView(mUnityPlayer.getView(), 0, lp);
Затем я пытаюсь добавить фрагмент к родительскому FrameLayout
R.id.frame
в этом действии, используя этот код.
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.frame, MyFragment.newInstance(),null);
transaction.addToBackStack(null);
transaction.commit();
Проблема в том, что весь макет скрыт, но FrameLayout R.id.scene
, который содержит UnityPlayer, продолжает отображаться поверх нового фрагмента MyFragment
Я могу скрыть UnityPlayer, выполнив
binding.scene.removeAllViews();
Но я не могу этого сделать из-за функциональности, которая мне нужна в приложении. Я просто хочу спрятать плеер, чтобы он продолжал работать. Но игрок появляется поверх недавно запущенного фрагмента, что странно.
Что здесь не так? Мы ценим любые предложения. Спасибо!