我的应用程序在更改统一播放器的屏幕方向时崩溃

时间:2018-06-06 10:25:43

标签: android unity3d android-manifest unityscript android-unity-plugin

我的Android应用程序在点击时打开了Unity播放器。我的团结运动员按预期运作。

问题:在更改屏幕轮换时,应用程序崩溃。

调试控制台输出:

<activity
            android:name=".UnityPlayerActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="landscape"
            android:theme="@style/UnityThemeSelector">
            <meta-data
                android:name="unityplayer.UnityActivity"
                android:value="true" />
        </activity>

AndroidManifest

orientation|layoutDirection|screenLayout

解决方法:

  

固定屏幕更改应用程序崩溃&#34;或者&#34;强制横向观看&#34;   我会做出决定。

  1. 我尝试将统一玩家设置改为横向左侧。
  2. 我尝试从Android清单文件中删除screenOrientation="landscape/user/nosensor/fulluser"
  3. 我尝试添加(<any>document).addEventListener('visibilitychange', function () { if ((<any>document).hidden) { // sendEvent : hidden // stop or pause counting user's session } else { //sendEvent : visible // sendEvent : continue lifetime time counting on same session } }

1 个答案:

答案 0 :(得分:0)

我在改变方向时搜索了很多Unity Player崩溃,我没有找到有用的解决方案。

因此,由于这是我的可行性,我只将我的方向锁定在“风景”模式。

为此,

第1步:Unity播放器设置

  

转到编辑&gt;项目设置&gt;播放器它将打开播放器设置   检查员。

     

从列表中选择目标平台。

     

单击“分辨率和演示文稿”部分。

     

将默认方向设置为左/右横向。

请参阅此博客:https://answers.unity.com/questions/774186/landscape-mode-only.html

第2步:Android代码更改。

在清单文件中,

<activity
            android:name=".UnityPlayerActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="landscape"
            android:theme="@style/UnityThemeSelector">
            <meta-data
                android:name="unityplayer.UnityActivity"
                android:value="true" />
</activity>

另外,也可以通过编程方式进行定位。

private int screenOrientation;
// lock screen orientation to landscape mode only.
screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
setRequestedOrientation(screenOrientation);