内容简介:这是第128篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。UWA 问答社区:answer.uwa4d.comUWA QQ群:465082844(仅限技术交流)
这是第128篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群:465082844(仅限技术交流)
编译
Q1:最近在研究加速打包问题,发现IL2CPP生成代码之后每次Xcode都是全量编译(直接Build而不是Clean+Archive),我参考 这里 看了下,并对比了下,如果C#代码没有变化,生成的CPP代码的内容确实不变。但是重新生成貌似会导致文件修改时间变化或别的属性变化,Xcode依然是所有都编译了一遍,这块有什么经验么?
题主:目前准备用UWA群里大佬说的方法绕开:
“打出的Xcode用svn同步到Xcode打包项目下”—Freshair.
我用dnspy看了下,il2cpp.exe直接修改代价有点大,而且不好维护。用BeyondCompare比较了下,发现其实就> Preprocessor.h和Native文件夹俩修改时间产生了变化...
感谢钱康来@UWA问答社区分享了该问答,欢迎转至社区交流:
https://answer.uwa4d.com/question/5b90ebbb670c1a61c64d6cd3UI
Q2:我用OnPopulateMesh修改UI的顶点数据,通过Tangent向UGUI的Shader中传递一些数据,C#代码是这样写的:
public class MyRawImage : RawImage
{
protected override void OnPopulateMesh(VertexHelper vh)
{
base.OnPopulateMesh(vh);
UIVertex vert = new UIVertex(); int vertCount = vh.currentVertCount; for(int i = 0; i <vertCount; ++i) { vh.PopulateUIVertex(ref vert, i); vert.tangent = new Vector4(1,0,0,1); // 通过tangent传递数据 ----------------- vert.color = new Color(1,0,0,1); // 通过color传递数据 ----------------- vh.SetUIVertex(vert, i); } }
}
Shader代码:
struct appdata_t
{
float4 vertex : POSITION;
float4 color : COLOR; // color 数据 -----------------
float2 texcoord : TEXCOORD0;
float4 tangent : TANGENT; // tangent 数据 -----------------
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR; // color 数据 -----------------
float2 texcoord : TEXCOORD0;
float4 worldPosition : TEXCOORD1;
float4 tangent : TEXCOORD2; // tangent 数据 -----------------
UNITY_VERTEX_OUTPUT_STEREO
};
v2f vert(appdata_t v)
{
v2f OUT;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
OUT.worldPosition = v.vertex;
OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
OUT.texcoord = v.texcoord; OUT.tangent = v.tangent; // tangent 数据 ----------------- OUT.color = v.color; // color 数据 ----------------- return OUT;
}
fixed4 frag(v2f IN) : SV_Target
{
return IN.color; // color 数据 -----------------
return IN.tangent; // tangent 数据 -----------------
}
Color数据可以正确获取到,但是Tangent始终是0,似乎UGUI没有将Tangent数据传给Shader。请问下是什么原因,还是代码哪里写的有问题?
见下图:
感谢钱康来@UWA问答社区提供了回答
该问答来自UWA问答社区,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5b8f6497f8456e3944031084崩溃
Q3:请教一下,我使用VideoPlayer的时候,Android端调用Stop会闪退的,Unity 版本是5.6.1,大家有遇到过吗?该如何处理呢?
**低版本的Unity上VideoPlayer就是不稳定的,容易崩溃。这点我们和Unity官方的技术支持团队确认过,建议升级Unity版本,最好升到Unity 2017,如果不方便可以升到高版本的Unity 5.6 系列。
感谢吴一帆@UWA问答社区提供了回答
该回答由UWA提供,欢迎大家转至社区进一步交流:
https://answer.uwa4d.com/question/5b91f86ba711f261c1677e16动画
Q4:我想在Animation中无法加入TextMesh.color这个变量,请问该如何实现?需要在动画中修改TextMesh的a值, 但是在mat中修改没法合批。
经排查发现这个问题是由无法静态合批所致, 提示“Objects are affected by different forward lights”。经进一步测试,发现差异点为在游戏中,场景部件受到点光源照射, ForwardAdd打断合批过程, 如果把点光源屏蔽掉, 能够正常合批。
该回答由UWA提供,欢迎大家转至社区进一步交流:
https://answer.uwa4d.com/question/5b8f431cf8456e3944031080脚本
Q5:我用GetComponents的API获取GameObject的组件时,有时候获取的顺序不一致,请问这个顺序是由什么决定的呢?
之前没注意过这个问题,但是感觉挺有意思的,所以使用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(仅限技术交流)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- gulp4增量编译
- 有赞 Android 编译进阶之路 —— 增量编译提效方案Savitar
- Unity引擎iOS增量编译方法解析
- Kotlin 1.1.60 发布,开始支持增量编译
- Rust 1.52.1 发布,默认禁用增量编译
- Kotlin 1.2.70 发布,增量编译速度提高 7 倍
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。