IT圈老男孩1 发表于 2022-12-4 09:30

Unity编辑器与真机效果表现不一致问题汇总

我么项目在进入到打包测试阶段经常遇到真机上的表现与编辑器不一致的情况, 说一千道一万反正就是对引擎不够熟悉导致的.
1. 真机上不显示对应的粒子特效了

这种情况一般是粒子mesh关闭了read/write属性, 编辑器会警告但依旧显示,真机就不显示了
2.真机 上的shader表现跟编辑器不一样,丢失了部分开关控制的效果

注意下shader是否用了变体,如果变体没有打包进去那么就会使用默认的变体shader.通常出现在代码控制变体开关或者通过热更增加美术资源但是模型跟shader打包的时候ab分开了. 这里可以使用Shader variants collection
3. 真机上模型效果变红,但是编辑器没有任何问题

效果变红就是材质丢失或者shader报错了. 渲染器材质丢失这个好判断一般会两遍同时出错, shader变红很有可能是打包机上shader缓存导致(尤其是shader的引用文件位置变化), 直接去打包机上重新reimport所有shader相关资源即可
4. 真机上顶点动画运行一段时间后出现断断续续的表现

这个一般是数据精度导致的,time相关变量需要设置为float.测试发现苹果设备容易出现这个问题,android高中低反而没这个问题
5. 真机和编辑器显示图像倒转问题

很多小伙伴会使用UNITY_UV_STARTS_AT_TOP判断屏幕坐标的原点位置来区分,但这并不对.问题出在 顶点shader中都会设置投影坐标,但是这个并是不是最后的屏幕坐标,安卓平台和PC平台的裁剪空间的z轴方向相反, 使用_ProjectionParams.x可以判断的,投影矩阵反转时是-1,否则是1。或者直接使用ComputeScreenPos方法即可
页: [1]
查看完整版本: Unity编辑器与真机效果表现不一致问题汇总