Игрок Unity в активности продолжает показывать даже после добавления фрагмента сверху - PullRequest
0 голосов
/ 11 ноября 2019

Я использую 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();

Но я не могу этого сделать из-за функциональности, которая мне нужна в приложении. Я просто хочу спрятать плеер, чтобы он продолжал работать. Но игрок появляется поверх недавно запущенного фрагмента, что странно.

Что здесь не так? Мы ценим любые предложения. Спасибо!

...