8

unity 资源包版本兼容性问题及il2cpp模式下代码优化问题

 2 years ago
source link: https://www.zoucz.com/blog/2023/02/14/31132b00-ac59-11ed-9fa0-5dbc93f9d3ee/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

unity 资源包版本兼容性问题及il2cpp模式下代码优化问题

作者: 邹成卓 2023-02-14 19:17:39 分类: unity3d

标签: unity3d

评论数:

assetsbundle包在不同特性版本之间的兼容性问题

我们基于 unity2021.3.6f1c1 打包了模型的 assetsbundle 包,交付给客户使用。 我要说话

然而客户使用 unity2021.3.13f1c1 版本导入资源,反馈模型无法正常渲染。 我要说话

unity editor 中运行时,发现控制台有类似下面这种告警: 我要说话

image.png
我要说话

Shader 'xxx' uses 153 texture parameters, more than the 64 supported by the current graphics device. 我要说话

搜到了这篇帖子:https://forum.unity.com/threads/new-warning-about-texture-parameter-support-in-2021-3-10.1338212/ 我要说话

帖子里提到,资源在不同的子版本之间打包和导入,可能存在渲染异常。 我要说话

经过一段时间的排查和调试,也踩了一些坑,得出下面的经验: 我要说话

不同特性版本间打包和加载

特性版本1打 assetsbundle 包,特性版本2下加载,模型可能渲染正常,也可能shader无法工作导致渲染完全失效:

image.png
我要说话

相同特性版本打包和加载,但是涉及到项目版本升级

使用 unity2021.3.13f1c1 打开以前基于 unity2021.3.6f1c1 创建的项目,打开的过程中 unity 提示涉及版本转换,点击 continue。 我要说话

当前项目使用

打包模型的 assetsbundle,在当前项目中使用,渲染正常。 我要说话

基于目标特性版本创建新项目使用

基于 unity2021.3.13f1c1 创建一个新的项目,加载上面打包的 assetsbundle,渲染看似正常,但是出现色差。

image.png
image.png
我要说话

基于目标特性版本创建新项目并切换 target platform 使用

上面一个步骤, build target 是 win / mac / linux,将 build target 切换为 ios 或者 android,渲染出现异常,出现白色蒙层。 我要说话

image.png
我要说话

相同特性版本创建、打包和加载,不涉及到升级

加载后渲染完全正常,切换目标平台后渲染也正常。 我要说话

基于 il2cpp 模式下代码优化问题

prefab上附带了 animator,结果使用 il2cpp 模式打包并在终端运行时,动画无法正常执行,无明显报错,只有一些告警信息,Could not produce class with ID 74我要说话

这个问题其实有在 unity 动画&音频控制、平台打包过程中遇到的坑 这里提到过,从今天的case来看,可能是由于 il2cpp 转换的过程中,没有处理到 assetsbundle 资源包,导致资源包加载后找不到相关类。我要说话

本文链接:https://www.zoucz.com/blog/2023/02/14/31132b00-ac59-11ed-9fa0-5dbc93f9d3ee/我要说话

☞ 参与评论我要说话


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK