1)关于UGUI滚动列表的疑问
2)iOS手机上设置静音键后仍旧播放声音
3)关于ShadowMap的渲染开销问题
4)使用Xcodebuild自动化打出IPA包
5)APK内Assets目录占用过大
这是第205篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。
UGUI
Q:在UGUI的滚动列表中,怎么实现在纵向大列表的子物体里的列表横向滚动?
A:提供一种思路:
子物体重写ScrollRect里面的OnBeginDrag/OnDrag/OnEndDrag方法,判断手势滑动的方向,如果不符合期望的方向,转发事件给父级ScrollRect。
实现效果如图:
Demo相关代码可以通过原链接获取。
Audio
Q:我们项目使用FMOD播放音频,在iOS手机包上开启了物理静音开关后,游戏音频依然可以播放,没有被静音。大家有遇到过相同的问题吗?
A:关闭Unity Audio试试,在Project Settings中。
Rendering
Q:请问下,我看每个灯光都能设置阴影分辨率,所以每个灯光都会产生ShadowMap吗?那么大一点的ShadowMap占的内存肯定会变大,但是渲染的开销会有明显差别吗?
A:1.多个灯光打开阴影,确实会产生多个ShadowMap。在场景里摆几个灯光然后开启阴影,运行一下,使用Memory Profiler即可看到多张ShadowMap的RenderTexture。
2.在Forword渲染路径下,多个灯光的开销肯定是比较大的;一般而言只需要主光源有阴影即可,而且如果阴影质量开的比较高,它的开销也是比较大的。
Build
Q:请问下,我使用Xcodebuild自动化打包,最后一步导出IPA的时候,为什么这个Plist文件会一直提示说找不到?
A:是因为没有加上allowProvisioningUpdates,加上后问题就解决了。但是不知道为什么没加上这个,iOS提示的错误是没找到文件。最好这样就可以打出包:
xcodebuild -exportArchive -archivePath /Users/luo/studio/svn/SLGClient/Client2/AGame/Build/XcodeProject/output/Unity-iPhone.xcarchive -exportPath /Users/luo/studio/svn/SLGClient/Client2/AGame/Build/XcodeProject/output/Unity-iPhone.ipa -exportOptionsPlist /Users/luo/studio/svn/SLGClient/Client2/AGame/Build/XcodeProject/output/ExportOptions.plist allowProvisioningUpdates
Android
Q:当Android工程下的Assets目录中,文件总大小大于2GB时,在模拟器(测试过雷电、MuMu)上安装失败。
通过ADB取到日志如下:
当Assets目录下文件总大小小于2GB时,没有这个问题。各位有遇到过这个问题吗?
A:安卓对APK安装包大小有限制要求,不能大于2GB。
我前几天也刚刚看到过类似的问题,你可以参考这个问答。