Unity抖音小游戏真机问题简记

本文由 NRatel 历史笔记整理而来,如有错误欢迎指正。

1、提示 perission denied
实际原因:上传时无上传权限,即使有权限也首次必现(抖音报错不准确)

解决:增加 管理/编辑 权限

2、报错 Could not produce class with ID xxx.

原因:部分类被裁剪

若根据提示降低裁剪,可能导致包体变大

可根据提示的Class ID查找对应的类

https://docs.unity3d.com/Manual/ClassIDReference.html

如此处,65为BoxCollider

然后在项目 Assets任意目录添加 link.xml,添加内容

参考:https://docs.unity3d.com/cn/current/Manual/ManagedCodeStripping.html

<linker>
       <assembly fullname="UnityEngine">
            <type fullname="UnityEngine.BoxCollider" preserve="all"/>
       </assembly>
</linker>

3、运行时Shader丢失,即使加入到 Always Include

原因:ab只支持LZ4, 启用BuildAssetBundleOptions.ChunkBasedCompression

4、C# this 关键字导致的报错

原因:使用 C# 的 this 关键字扩展类方法时,参数个数相同时不能生效(编辑器下未报错)。

解决:将扩展方法改名

5、警告:Couldn't create a Convex Mesh from source mesh "shitou_02." within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.

原因:小游戏要求的模型面数不能超过256

6、TT.GetSystemInfo().safeArea 与 Unity Screen.safeArea 的类型不同,兼容

Iphone12下,抖音开发者工具结果

Iphone12下,Unity Simulator 结果

TT.GetSystemInfo().safeArea 返回的结果是一个自定义的结构体。

需将其转为 Screen.safeArea 的结果类型相同。

//https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/guide/game-engine/rd-to-SCgame/open-capacity/capability-adaptation/sc_webgl_screen

//注意,ttSystemInfo.safeArea 的坐标系 (以屏幕左上为原点,向右为x正方向,向下为y正方向)

TTSystemInfo ttSystemInfo = TT.GetSystemInfo();

float x = ttSystemInfo.safeArea.left * (int)ttSystemInfo.pixelRatio;

float y = (ttSystemInfo.screenHeight - ttSystemInfo.safeArea.bottom) * (int)ttSystemInfo.pixelRatio;

float width = ttSystemInfo.safeArea.width * (int)ttSystemInfo.pixelRatio;

float height = ttSystemInfo.safeArea.height * (int)ttSystemInfo.pixelRatio;

safeArea = new Rect(x, y, width, height);

计算结果如下:基本相同,height存在差异的原因可能是 ttSystemInfo.safeArea.height 返回的结果被向下取整了。影响不大。

7、色彩空间问题:

在线性空间下需修改Spine材质上的 alpha预乘 选项。

关于颜色空间,可看我这篇文章详细讲解

Unity 中的颜色空间_unity srgb-CSDN博客文章浏览阅读1.1k次,点赞21次,收藏22次。颜色空间是一个数学模型或系统,它定义了一套规则和方法,用来精确地描述、表示和组织颜色。​可以把它想象成一个三维坐标系​(或者有时更多维)每个维度代表一个构成颜色的基本分量每个维度都有一个取值范围(例如 RGB 通常是 0-255 或 0.0-1.0),这个范围定义了该颜色空间所能表示的所有可能颜色的集合,称为色域。简单来说:颜色空间就像一本关于颜色的“字典”和“语法规则”。它提供了一套标准化的方法来:①、​定义一个颜色(给它一个数值坐标)。_unity srgb https://blog.csdn.net/NRatel/article/details/148479400

8、安卓WebGL2.0方案在抖音29.9.0以下不支持

9、提示:宿主为32位抖音APP,

不支持32位手机运行

10、摇一摇卡顿明显

网格数降低优化

11、真机平铺处黑线

压缩原因

12、打点: 需要开运营权限才能调试,需等待较久

认真检查事件名,是否多了空格/下划线、写错等

13、部分机器没有音效

此为抖音的bug(可能在未来某版本修复)。

图1:unity抖音sdk 针对长短音频2个处理方式。其中长音频使用了抖音API。

图2:抖音对于长音频,提供了 obeyMuteSwitch 参数,可选是否将“系统静音”应用于小游戏。

图3:obeyMuteSwitch 在ios上不生效。

---------------------------------------------------

故:unity抖音小游戏,短音频受“系统静音”影响,而长音频(背景音乐)不受“系统静音”影响。

14、屏幕右上角 出现了一个透明按钮,显示“UI”字样

原因:真机环境也调用了 MockSetting.OpenAllMockModule(); 去掉即可

15、安卓平板震动 和 部分安卓机器陀螺仪功能 不生效(暂未解决)

C# 中的CanIUse 接口仅代码sdk是否支持此接口,不代表机器拥有此功能,故不能fallback

16、部分安卓机运行黑屏

原因:使用了非文档说明的,经过验证的Unity版本。

将团结改为Unity2021.3.16f1c1后解决

17、Unity编辑器下,以ab方式运行 Shader丢失(大面积粉红色),即使加入 Always Included 也没用。

在团结 和 Unity 上都是。

(应该不是unity版本问题,换2021.3.42f1c1后仍有问题)。

(可能是 Windows下WebGL对GL有要求,类似安卓需要增加 -force-gles,而WebGL不知道应该怎样)

(暂未解决)(只是编辑器下以ab运行的问题,等后续有空细查)

18、安卓添加桌面后无法打开

原因:Android打开的是线上版,没有发布是无法打开的。见下方社区问答。

未发布的测试抖音普通小游戏,添加到安卓设备桌面,每次打开都会加载失败,苹果没问题 - 抖音开放平台抖音开发者社区是由开发者与平台共同维护的技术交流社区,开发者可在社区内发表自己的困惑或基于经验解答其他开发者的疑问。可有效帮助开发者提升技能、答疑解惑、进行行业交流、达到共同成长。https://developer.open-douyin.com/forum/question/post/65f153976fd28c5b74f46761

19、头条无法运行。

原因:发布为 webgl2.0 的抖音游戏,仅支持抖音系。

20、头条火山等扫测试码无法直接打开

正常,打开的是入口列表,点入口再进即可。

21、ipad无法震动

ipad不支持震动

22、插屏广告2个奇怪报错。

原因1:sdk可能太旧了,升级到最新后此问题消失了。

原因2:我的使用流程也不对。抖音的思路是即时 Create->Load->Show->Close->Destroy

不要像激励视频一样预加载,再展示。

60秒间隔指调用 TT.CreateInterstitialAd 的间隔,而不是调用 Show 的间隔

(抖音的客服比较迷糊,随口乱说...,导致长时间调不好)

(一定要去参考js侧示例的用法,C#侧的示例过于简单)。

23、分包尝试

测试和制作人一直感觉启动慢。

Unity项目的小游戏包在20M左右,如果网速2m/s,则下载过程就需要10秒。

这其中,代码就占一半,unity的代码包比较大,即使开了最大等级的裁剪,也没有太多压缩空间(只能减小2M左右)

代码分包的话是提升比较明显的。

但是缺点也很明显:就是发正式包的时候得手打、手动跑出双端首包代码。没办法自动打包了。

代码分包详见:

Unity抖音小游戏代码分包-CSDN博客文章浏览阅读321次,点赞5次,收藏10次。抖音小游戏,如果不做代码分包至少有以下几个问题:1、WebGL 报错 RuntimeError: Out of bounds memory access (evaluating 'dynCall_xxxx')2、启动慢3、内存问题 https://blog.csdn.net/NRatel/article/details/151054021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NRatel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值