Unity Scene在模拟器中正常工作,但在Android上无法正确加载

2o7dmzc5  于 2023-06-04  发布在  Android
关注(0)|答案(2)|浏览(319)

我创建了一个Unity Match 3游戏,我想将其导出到Android。它在网络上工作,当你在Windows上运行它时,它工作,但一旦我在Android上导出它,它就不再工作了。我把所有的场景都装进去了,所以这不是问题所在。在这里,您可以看到它在模拟器中工作(左),但不在移动设备上(右,屏幕镜像):Video


我通过SceneManager加载场景方法加载场景:

public void OnButtonPress(string levelName)
    {
        Debug.Log("Loading Scene: " + levelName);
        SceneManager.LoadScene(levelName, LoadSceneMode.Single);
    }

谁能告诉我我可能做错了什么?
Unity版本:2022.2.21f1(也尝试了版本2021.3.24f1)电话:OnePlusNord2 5G(DN2103)Android版本12


这里是调试输出,也许有人可以在这里找到一个错误,我已经通过Android调试调试它,但要么不理解错误,要么我可以简单地找到没有错误:
2023 - 05 - 30 15:33:03.286 29685 - 30436 Unity com.daltonlima.com.Match3 I Loading Scene:Level04 UnityEngine。DebugLogHandler:LogFormat(LogType,Object,String,Object [])UnityEngine。记录器:Log(LogType,Object)UnityEngine。调试:Log(Object)Match3.LevelSelect:OnButtonPress(String)(在C:\Schule\bachelor_flutter_crush\projekt_flutter_crush\unity\Match3\Assets\Scripts\LevelSelect.cs:36)UnityEngine。事件。InvokableCall 1:Invoke(String) (at \home\bokken\build\output\unity\unity\Runtime\Export\UnityEvent\UnityEvent.cs:219) UnityEngine.Events.CachedInvokableCall 1:调用(Object [])(at\home\bokken\build\output\unity\unity\Runtime\Export\UnityEvent\UnityEvent. cs:357)UnityEngine。事件。UnityEvent:Invoke()(at\home\bokken\build\output\unity\unity\artifacts\generated\UnityEvent\UnityEvent_0.cs:69)UnityEngine。UI.按钮:按下()(位于.\Library\PackageCache\com.unity.ugui@1.0.0\Runtime\UI\Core\Button.cs:70)UnityEngine。UI.按钮:OnPointerClick(PointerEventData)(at.\Library\PackageCache\com.unity.ugui@1.0.0\Runtime\UI\Core\Button.cs:114)UnityEngine。EventSystems.执行事件:执行(IPointe 2023 - 05 - 30 15:三十三:03.301 29685 - 30529 Unity com.daltonlima.com.Match3 D正在卸载5个未使用的序列化文件(现在已加载的序列化文件:0)2023 - 05 - 30 15:33:03.361 29685 - 30436 Unity com.daltonlima.com.Match3 D UnloadTime:5.955692 ms 2023 - 05 - 30 15:33:03.387 29685 - 30436 Unity com.daltonlima.com.Match3 D卸载20个未使用的资产/(25.1 KB).现在加载的对象:1291.内存消耗从73.2 MB变为73.1 MB。2023 - 05 - 30 15:33:03.387 29685 - 30436 Unity com.daltonlima.com.Match3 D总计:4.805923 ms(FindLiveObjects:0.179923 ms CreateObjectMapping:0.054385 ms MarkObjects:4.314769毫秒DeleteObjects:0.255308 ms)2023 - 05 - 30 15:33:03.390 29685 - 30436 Unity com.daltonlima.com.Match3我启动了LevelColors UnityEngine。DebugLogHandler:LogFormat(LogType,Object,String,Object [])UnityEngine。Logger:Log(LogType,Object)UnityEngine。Debug:Log(Object)Match3.LevelColors:Start()(at C:\Schule\bachelor_flutter_crush\projekt_flutter_crush\unity\Match3\Assets\Scripts\LevelColors.cs:26)

f45qwnt8

f45qwnt81#

只有这些信息是不可能说的问题到底是什么。例如,问题可能是在哪里保存/加载数据到/从硬盘或一个不兼容的移动的着色器或其他东西...你应该尝试调试你的游戏,按照这里的说明:
https://docs.unity3d.com/Manual/android-debugging-on-an-android-device.html
这样你就可以在游戏在你的设备上启动时看到错误,并尝试纠正它。
编辑。我这样做:

Destroy(GameObject.FindWithTag("PreviousScene")); 
SceneManager.LoadSceneAsync("Name New Level", LoadSceneMode.Additive);

我不确定它是否也会为你工作。此外,因为我停止时间时,游戏是在菜单之前,我会设置

Time.timeScale = 1.0f;

对我来说,至少这种方式在android上工作(相同的设备)。
我的“PreviousScene”对象总是包含整个关卡(它 Package 了所有的东西)

toe95027

toe950272#

我设法使它工作,通过简单地改变m_ShowUnitySplashScreen = 0m_ShowUnitySplashScreen = 1
我不完全明白为什么它现在起作用了,但它确实起作用了。无论如何,感谢您的输入。非常感谢

相关问题