繁体   English   中英

Android中的黑屏统一子视图

[英]Black screen unity subview in android

我尝试将统一场景用作我的Android应用程序的子视图。 我确实喜欢本教程http://forum.unity3d.com/threads/using-unity-android-in-a-sub-view.98315/ 但是我有一个问题。 我的屏幕像这样黑

在此处输入图片说明

这是我的Java代码MainActivity

package com.duy;

import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;

import com.unity3d.player.UnityPlayer;

public class MainActivity extends Activity {

    UnityPlayer m_UnityPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        m_UnityPlayer = new UnityPlayer(this);
        int glesMode = m_UnityPlayer.getSettings().getInt("gles_mode", 1);
        m_UnityPlayer.init(glesMode, false);

        FrameLayout layout = (FrameLayout) findViewById(R.id.unityView);
        LayoutParams lp = new LayoutParams(600, 800);
        layout.addView(m_UnityPlayer.getView(), 0, lp);

    }
    public void onWindowFocusChanged(boolean hasFocus)
    {
        super.onWindowFocusChanged(hasFocus);
        m_UnityPlayer.windowFocusChanged(hasFocus);
    }

}

的Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.duy"
android:versionCode="1"
android:versionName="1.0" >

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:windowSoftInputMode="adjustResize|adjustPan|stateHidden"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale">

        <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
</application>
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="22" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />

和我的布局activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/unityView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
</FrameLayout>

您能帮我解决这个问题吗? 非常感谢你!

您正在像这样的代码中指定布局参数

LayoutParams lp = new LayoutParams(600, 800);

如果删除此行,则可能会正常工作.. :)

找到答案,只需在清单文件中的统一项目的android库(unityLib)活动标签中添加此行

android:process=":UnityKillsMe"

以及实现onWindowFocusChangedListener的强制性

onWindowFocusChanged(){m_UnityPlayer.windowFocusChanged(hasFocus);}

它将通过https://gamedev.stackexchange.com/questions/134347/android-black-screen-with-unity-app-in-subview解决

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM