1)ProtoBuf-net Serializer.Serialize 产生大量的 GC
2)如何疾速在工程代码中每个函数注入本人想要插入的代码
3)Unity 设置 IL2CPP 导出的 Mac 平台的 Xcode 工程中,如何通过 Object- C 代码反调 Unity 侧的 C# 代码
4)ShaderGraph 生成的 Shader 在 UGUI 上应用的问题
这是第 289 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。
UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)
Mono
Q:在咱们游戏中有应用到 ProtoBuf 的序列化,在查找性能问题的时候看到序列化的函数产生了大量的 GC,如下图:
A:能够参考《Unity3D 游戏 GC 优化总结 —protobuf-net 无 GC 版本优化实际》。
感激 lanyt@UWA 问答社区提供了答复
Script
Q:如何疾速地在工程代码中的每个函数注入本人想要插入的代码?有说借助 Mono Ceil 的,还有一些库没有开源,所以想请问有没有其余方面的材料能够参考?
A:能够参考《应用 Mono.Cecil 实现 IL 代码注入》。
感激羽飞 @UWA 问答社区提供了答复
Script
Q:在 iOS 平台下,IL2CPP 导出的 Xcode 工程中 Object- C 调用 Unity 办法是通过 SendMessage 实现的:
请问在 Mac 平台下 IL2CPP 形式导出的 Mac 工程,如何通过 Object- C 代码反调 Unity 侧的 C# 代码?也是通过 SendMessage 的形式吗?然而我没找到相干的接口。
A:用 SendMessage 是能够实现的,然而效率不好。能够参考我这个 Object- C 回调 Unity。把你须要的接口,写成函数指针,在 Object- C 里注册,须要时做回调。<br/>
能够参考《Unity 与 Object- C 交互》。
感激廖武兴 @UWA 问答社区提供了答复
Shader
Q:我用 URP 10.4.0 和 Shader Graph10.4.0 建设了一个用于 UGUI Image 的 Shader,它能在 PC 上正确运行,然而在手机上 UV 就谬误了,如下图:
如下图,这样间接连一个简略的 Tex2D 就会呈现,ShaderGraph 也如下图连贯:
我应用 Unity 2022 URP13.1.6 SG13.1.6 再次建设同样的 ShaderGraph Shader 在手机上是正确的,然而我临时没有方法更换 Unity 版本。
A:能够参考这个视频的做法,应该是不能间接把 ShaderGraph 生成的 Shader 间接用到 UGUI 上的,须要做一些调整:
https://www.youtube.com/watch…
感激 Xuan@UWA 问答社区提供了答复
封面图来源于:Protobuf-net Optimization
Protobuf-net 无 GC 优化版本,另外还提供了一些无 GC 自定义数据结构,以及对 Unity 3D 中 C# 代码的各种无 GC 应用形式测试。
明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA 学堂:edu.uwa4d.com
官网技术 QQ 群:793972859(原群已满员)