Unity打Android包不卡,但是在打IOS包后卡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity打Android包不卡,但是在打IOS包后卡相关的知识,希望对你有一定的参考价值。

参考技术A 最近做的项目出现如题所述的问题,打包在华为手机上跑没问题,但是在XS上跑就很卡,依次排查了以下几个问题。
我的Untiy版本为 2019.4.5f1

1.游戏帧率
当游戏卡顿后,第一个排查的是游戏帧率,因为之前Unity在ios端是会做锁帧操作的(30帧)
于是Application.targetFrameRate = 60; (这个东西表示让游戏以指定帧率允许;如果设置为-1,表示以最快速度运行)
记得这个东西和Unity垂直同步的操作有关系,如果设置了垂直同步,那么Unity就会放弃这个设定,而是根据屏幕硬件的刷新速度来运行

如果设置垂直同步为1,则帧率为60帧
如果垂直同步设置为2,则帧率为30帧

设置帧率,打包测试,还是卡,不是游戏帧率的问题

2.检测Unity的图集
为什么会突发奇想去检测这个东东呢,因为这是我首次在项目里面使用Unity自带的图集Sprite Atlas,然后我发现 在IOS打包的时候,使用的图集还是default,而不是ios的,于是我改成ios的后,重新打包 游戏就不卡了。

所以 这是图集的问题,这里记录下这个问题

Unity打安卓包 Android 所有错误解决方案大全(几乎囊括所有打包错误 )

来源:https://blog.csdn.net/ChinarCSDN/article/details/79597142

本文链接:https://blog.csdn.net/ChinarCSDN/article/details/79597142
Chinar blog :www.chinar.xin

 

Unity打包出错解决方案
本文提供全流程,中文翻译

Chinar 的初衷是将一种简单的生活方式带给世人

使有限时间 具备无限可能

Chinar —— 心分享、心创新!

助力快速解决 Unity 打包中常见错误

给新手节省宝贵的时间,避免采坑!

文章目录
1
Name not set —— 未设置修改包名 / 公司名 / 项目名
2
SDK Tools —— Unity版本低,需要安卓工具版本也应低些
3
AR Vuforia Android TV —— Vuforia AR 发开中,打包安卓报错
4
Quote UnityEditor —— 脚本引用 UnityEditor,导致无法打包
5
Socket: bind failed, error: —— 套接字绑定失败
5
In continuous update —— 持续更新中....
支持
May Be —— 开发者,总有一天要做的事!
1
Name not set —— 未设置修改包名 / 公司名 / 项目名

错误发生场景

由于未设置修改 包名 / 公司名 / 项目名

导致报错,最为简单

具体报错信息:
UnityException: Package Name has not been set up correctly
Please set the Package Name in the Player Settings. The value must follow the convention ‘com.YourCompanyName.YourProductName‘ and can contain alphanumeric characters and underscore.
Each segment must not start with a numeric character or underscore.
1
2
3
Error building Player: 2 errors
1
UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in
1
2
Build completed with a result of ‘Failed‘
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
1
2

 

解决方案:
更改 公司名 / 包名 / 项目名


------

2
SDK Tools —— Unity版本低,需要安卓工具版本也应低些

错误发生场景

一般高版本的 2017.2-2017.3 都不会报此错误

常见于 5.X 版本

 

具体报错信息:
Error:Invalid command android<br>UnityEditor.HostView:OnGUI()
1
CommandInvokationFailure: Unable to list target platforms.
Please make sure the android sdk path is correct. See the Console for more details.
1
2
Error building Player: CommandInvokationFailure:
Unable to list target platforms.
Please make sure the android sdk path is correct. See the Console for more details.
1
2
3

 

解决方案:
更换安卓工具包,至较低的版本


1. 点击下载 —— 安卓工具包 24 版本

2. 解压后替换 安卓 SDK 中的 Tools 文件夹

3. 然后重新打包,即可成功!!!

反之:如果 Unity 版本高,同样需要换成高版本的 安卓 SDK Tools

 


3
AR Vuforia Android TV —— Vuforia AR 发开中,打包安卓报错

错误发生场景

由于 Vuforia 不支持 Android TV ,导致报错

具体报错信息:
Vuforia does not support Android TV. Please disable the Android TV compatibility in the Player Settings.

UnityEngine.Debug:LogError(Object)
BuildObserver:OnPreprocessBuild(BuildTarget, String)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

1
2
3
4
5
6
Error building Player: Vuforia does not support Android TV. Please disable the Android TV compatibility in the Player Settings.
1
Build completed with a result of ‘Failed‘
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

1
2
3
UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in C:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.cs:181
at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.cs:88
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

1
2
3
4
5


解决方案:
所以需要在 Player Setting 中关闭该选项


即可成功打包工程

 


4
Quote UnityEditor —— 脚本引用 UnityEditor,导致无法打包

错误发生场景

打包项目/工程时报错

Unity Asset 目录中,如果脚本中引用了 UnityEditor

那么该脚本就应该放在 Editor 文件夹下 ( 如果没有,就新建一个名为 Editor 的文件夹)

具体报错信息:
Assets/CreateGuanJians.cs(4,7): error CS0246: The type or namespace name `UnityEditor‘ could not be found. Are you missing an assembly reference?
1
Error building Player because scripts had compiler errors
1
Build completed with a result of ‘Failed‘
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
1
2
UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in C:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.cs:181
at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.cs:88
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()

1
2
3
4
5


解决方案:
将引用有 UnityEditor 的脚本放在 Editor 文件夹下


( 如果没有,就新建一个名为 Editor 的文件夹)


即可成功打包工程

 


5
Socket: bind failed, error: —— 套接字绑定失败

错误发生场景

打开/新建 Unity 项目时报错

这是由于权限不够,或者网络端口被占用造成的

具体报错信息:
Socket: bind failed, error: 以一种访问权限不允许的方式做了一个访问套接字的尝试。
(0)

1
2
3
Unable to join player connection multicast group.
1


解决方案:
1. 直接 Clear 清空控制台,不用理它

2. 用管理员权限打开 Unity (可选)

5
In continuous update —— 持续更新中…

错误发生场景

错误不断更新中…最后汇集所有报错指南

请您惠存,支持 Chinar
————————————————
版权声明:本文为CSDN博主「Chinarcsdn」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ChinarCSDN/article/details/79597142

以上是关于Unity打Android包不卡,但是在打IOS包后卡的主要内容,如果未能解决你的问题,请参考以下文章

Unity打安卓包 Android 所有错误解决方案大全(几乎囊括所有打包错误 )

Android Studio中gradle命令指定打jar包...

Unity 5.3.1 No Android/IOS module loaded

springboot打jar包部署外置配置文件

unity打AssetBundle出现的问题

在eclipse中web-inf里面的lib中jar包不生效