如何优化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

相关推荐
传奇开心果编程2 小时前
【SwiftUI提高练中学】第8课 网络层架构:拦截器、重试、缓存与离线优先
学习·macos·ui·ios·swiftui
传奇开心果编程9 小时前
【Compose Multiplatform 跨端开发学与练】第3课 布局与组件
android·windows·学习·ui·ios·kotlin·composer
tink11 小时前
告别 Xcode IDE:用 VS Code + SweetPad + XcodeGen 开发 iOS 应用的完整指南
ios·swiftui·xcode
传奇开心果编程12 小时前
【Compose Multiplatform 跨端开发学与练】第8课 资源管理与主题
android·windows·学习·ios·kotlin·web·composer
传奇开心果编程13 小时前
【Compose Multiplatform 跨端开发学与练】第9课 测试与调试
android·学习·macos·ios·kotlin·web·composer
传奇开心果编程13 小时前
【Compose Multiplatform 跨端开发学与练】第4课 导航与路由
android·windows·学习·ui·ios·kotlin·composer
黑科技iOS上架13 小时前
iOS隐私合规扫描工具
ios·审核
传奇开心果编程14 小时前
【Compose Multiplatform 跨端开发学与练】第6课 状态管理与架构
android·学习·ui·ios·架构·kotlin·composer
传奇开心果编程14 小时前
【Compose Multiplatform 跨端开发学与练】第2课 Compose 基础语法
android·windows·学习·ui·ios·kotlin·composer
可乐鸡翅yeah_14 小时前
hls.js 缓冲区参数 maxBufferLength、maxBufferSize 通俗讲解与业务调参
开发语言·javascript·ios·音视频·safari·m3u8