如何优化Unity发布iOS编译出来的Framework文件过大问题

1)如何优化Unity发布iOS编译出来的Framework文件过大问题
2)Scriptable Build Pipeline打包Scritptable Object报错
3)APK在OPPO上报编译错误
4)如何在Sequence中模拟我的蓝图


这是第385篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Memory

Q:最近项目是Unity和iOS混合开发,在Unity导出Xcode工程后,编译出Framework集成到iOS主工程里面,在Framework将近90兆,设置代码裁剪和IL2CPP代码成Smaller后能减少十几兆,后面实在优化不下去了,包里也没有资源文件。请问大家一般是怎么减小生成的Framework大小呢?一般导出的Framework都是多大的呢?

欢迎有经验的朋友转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


AssetBundle

Q:1. 发生了什么?

给定一个自定义可编写脚本的对象,它有一个类似于MyScriptableObject m_RefObject的字段,创建3个名为A、B、C的对象。

C引用B、B引用A,使用SBP CompatibilityBuildPipeline.BuildAssetBundles将3个资产构建为单独的捆绑包。

加载捆绑包A、B、C,加载资产A、B、C。A和B加载成功,而加载C失败,导致警告"The referenced script on this Behaviour (Game Object '') is missing!'' 并返回 null。

切换到UnityEditor.BuildPipeline.BuildAssetBundles,A、B、C 均加载成功。

2. 如何使用所附示例重现它?

打开示例场景并单击"播放",控制台将显示资源加载失败,所有行为均在Entry.cs内。

使用版本:
com.unity.scriptablebuildpipeline: 1.20.2/ 1.21.9
Unity 2021.3.25f1

有没有人遇到过这个问题,怎么解决?

A:官方回复:MonoScript Bundle是一个特殊的Bundle,它只包含脚本汇编/类型数据。我们在Addressables中使用它来帮助解决像这样的一些构建依赖问题。如果您只使用ScriptableBuildPipeline而不使用Addressables,那么仍然可以这样做。有一个BuildTask包含在SBP中,叫做CreateMonoScriptBundle,您可以将其添加到构建任务列表。

如果您只使用CompatibilityBuildPipeline,那么您将无法修改构建任务。如果这是您的用例,它是否与本机AssetBundle构建管道(BuildPipeline.BuildAssetBundles)一起工作?除非你有理由使用CompatibilityBuildPipeline API,否则我可能会建议你尝试一下,看看它是否适合你。

感谢打包仔@UWA问答社区提供了回答


Lua

Q:Unity版本2021.3.9f1,插件使用xLua,游戏项目使用Lua语言编写,打出来的APK包,可以安装到小米手机正常,安装到模拟器正常,但是安装到OPPO Reno手机出现编译错误:
xLua exception : error loading module TestLua from CustomLoader, TestLua.lua:1: syntax error near 'Found'

欢迎有经验的朋友转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


Sequence

Q:制作了一个BP蓝图,里面实现了简单的灯光运动的效果。我想在Sequence中也能够模拟这个蓝图实现的效果,但是在Sequence里播放时是无法模拟蓝图的效果的。请问这个要如何解决呢?

A:总体的思路是把蓝图要实现的功能写到一个Function里,将其命名为SETdoSomething,并给这个Function一个输入(任意类型,比如Boolean)。这个Function需要开启Call In Editor。之后写一个doSomething的变量,类型与Function的输入保持一致(案例中为Boolean),该变量开启Expose to Cinematics和小眼睛(Instance Editable)。之后在Track里就可以找到这个Do Something,将其用于关键帧,当它为true时就会调用Function,即实现了Sequence中蓝图功能的模拟。

欢迎有经验的朋友转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

相关推荐
NPUQS12 分钟前
【Unity 3D学习】Unity 与 Python 互通入门:点击按钮调用 Python(超简单示例)
学习·3d·unity
RickeyBoy6 小时前
SwiftUI 如何实现 Infinite Scroll?
ios·面试
电子云与长程纠缠7 小时前
Godot学习05 - 播放与分离FBX动画
学习·游戏引擎·godot
壹方秘境9 小时前
厌倦了那些看着像一个模版复刻出来的抓包工具,我开发了一款iOS端HTTPS抓包调试工具
ios·程序员·产品
小贺儿开发9 小时前
【Arduino与Unity交互探究】03 超声波测距模块
unity·arduino·串口通信·传感器·videoplayer·硬件交互
weixin_4093831211 小时前
godot等轴视角tilemaplayer的学习 isocheric的素材xy大小怎么调
学习·游戏引擎·godot
开心就好202513 小时前
不同阶段的 iOS 应用混淆工具怎么组合使用,源码混淆、IPA混淆
后端·ios
世界不及妳微笑13 小时前
关于Xcode26.4 踩坑适配
ios·xcode
iceiceiceice13 小时前
iOS 26 适配 | 使用 `hidesSharedBackground` 保持导航栏按钮原有样式
ios·objective-c·编程语言
WarrenMondeville15 小时前
1.Unity面向对象-单一职责原则
unity·设计模式·c#