本文主要是介绍【厚积薄发】关于IL2CPP在Xcode下增量编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是第128篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群:465082844(仅限技术交流)
编译
Q:最近在研究加速打包问题,发现IL2CPP生成代码之后每次Xcode都是全量编译(直接Build而不是Clean+Archive),我参考这里看了下:
https://forum.unity.com/threads/incremental-builds-for-il2cpp.365470
对比了下,如果C#代码没有变化,生成的CPP代码的内容确实不变。但是重新生成貌似会导致文件修改时间变化或别的属性变化,Xcode依然是所有都编译了一遍,这块有什么经验么?
题主:目前准备用UWA群里大佬说的方法绕开:
“打出的Xcode用svn同步到Xcode打包项目下”—Freshair.
我用dnspy看了下,il2cpp.exe直接修改代价有点大,而且不好维护。用BeyondCompare比较了下,发现其实就Preprocessor.h和Native文件夹俩修改时间产生了变化...
感谢钱康来@UWA问答社区分享了该问答,欢迎转至社区交流:
https://answer.uwa4d.com/question/5b90ebbb670c1a61c64d6cd3
UI
Q:我用OnPopulateMesh修改UI的顶点数据,通过Tangent向UGUI的Shader中传递一些数据,C#代码是这样写的:
(由于微信排版缘故,请戳问答链接以获取完整信息)
Shader代码:
Color数据可以正确获取到,但是Tangent始终是0,似乎UGUI没有将Tangent数据传给Shader。请问下是什么原因,还是代码哪里写的有问题?
A:见下图
感谢钱康来@UWA问答社区提供了回答
该问答来自UWA问答社区,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5b8f6497f8456e3944031084
崩溃
Q:请教一下,我使用VideoPlayer的时候,Android端调用Stop会闪退的,Unity 版本是5.6.1,大家有遇到过吗?该如何处理呢?
A:低版本的Unity上VideoPlayer就是不稳定的,容易崩溃。这点我们和Unity官方的技术支持团队确认过,建议升级Unity版本,最好升到Unity 2017,如果不方便可以升到高版本的Unity 5.6 系列。
感谢吴一帆@UWA问答社区提供了回答
该回答由UWA提供,欢迎大家转至社区进一步交流:
https://answer.uwa4d.com/question/5b91f86ba711f261c1677e16
动画
Q:我想在Animation中无法加入TextMesh.color这个变量,请问该如何实现?需要在动画中修改TextMesh的a值, 但是在mat中修改没法合批。
UWA:经排查发现这个问题是由无法静态合批所致, 提示“Objects are affected by different forward lights”。经进一步测试,发现差异点为在游戏中,场景部件受到点光源照射, ForwardAdd打断合批过程, 如果把点光源屏蔽掉, 能够正常合批。
该回答由UWA提供,欢迎大家转至社区进一步交流:
https://answer.uwa4d.com/question/5b8f431cf8456e3944031080
脚本
Q:我用GetComponents的API获取GameObject的组件时,有时候获取的顺序不一致,请问这个顺序是由什么决定的呢?
A:之前没注意过这个问题,但是感觉挺有意思的,所以使用GetComponents和order两个关键词做了一下检索:
https://answers.unity.com/questions/1293957/reliable-order-of-components-using-getcomponents.html
https://answers.unity.com/questions/556932/does-getcomponents-return-the-components-in-the-or.html
https://stackoverflow.com/questions/42375242/unity-getcomponentsinchildrent-return-order
大意应该是——顺序应该是和你在Inspector里看到的顺序一致,但是因为这个顺序是undoc的,所以Unity什么时候改了实现导致顺序变化了并不会知会你。
不知道题主在什么情况下获取的顺序不一致,这个不一致是否是完全相同的状态多次获取结果不一样?总之,我的感觉还是不要让顺序可以影响游戏逻辑为好,毕竟这东西即使当前测试稳定,以后的版本谁知道呢。
感谢贾伟昊@UWA问答社区提供了回答
UWA:用GetComponents获取的顺序就是Inspector中Component的顺序。如果你在Editor中改变了这个顺序,那么用这个函数API获取的就随之改变了。
该问答来自UWA问答社区,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5b8c0a9f339d267d357c6eb6
今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
官方技术QQ群:465082844(仅限技术交流)
图片来自网络
这篇关于【厚积薄发】关于IL2CPP在Xcode下增量编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!