UNity 发布到蓝叠安卓模拟器帧数低后帧数很低,怎么办??

【厚积薄发】技术分享连载(九十)|Dalvik Heap 内存过高| Unity 5和Unity 2017版本下帧率降低 ...
Q:我们发现刚进入游戏,Dalvik Heap的内存很高,导致PSS比较高,切到后台,再切回游戏,Dalvik Heap内存减少非常多。然后我尝试使用网上说的Android调用GC的方式,System.GC,结合runFinalization。调用Runtime.getRuntime().gc(),都无法有效减少,不知道这块是否有办法有效调用一次?
A:我们查到原因了,是因为我们在Android层写了一个splash,但这个splash是png的,分辨率是,我们之前是
int splash_bg = getResources().getIdentifier(bgName, “drawable”, getPackageName());m_BgView.setBackgroundResource(splash_bg);
这张图片在HideSplash会被处于游离状态,要等Java的GC调用后,才会回收,但实际图片按道理内存也不该涨100MB左右,我们用测试工程只有Splash和SplashVideo,发现内存并不会增长那么多,代码一模一样。后面只能解释,可能JVM后某种内存分配算法造成的,当本来比较低的情况,分配会比较少,当到达一定数量级,再分配,就会分配更大一块内存(对Android底层机制不熟)
后面我们改为先从getResources里获得BITMAP,然后给ImageView,再HideSplash时候,调用Bitmap的手动释放方法。
该问题来自UWA问答社区,感谢题主在解决后将其方法分享公开,如您对该问题仍有疑问,可以转至社区进行进一步交流。
https://answer.uwa4d.com/question/5a2a04ca983f5
Q:我有一个MeshRenderer,它拥有两个材质,现在我想给其设置一个不同的MaterialPropertyBlocks,但据我所知,目前还没有能实现这样的办法,因为当我从Renderer中得到MaterialPropertyBlock后,我是不能指定它还能应用于某个材质了是吧?不知道大家有没有好的解决方法呢?
A:是的,MaterialPropertyBlocks是以MeshRenderer为单位的,而不是以Material为单位的。只能建议题主对Mesh进行拆分,确保每个Renderer上只挂一个Material。
https://answer.uwa4d.com/question/5a263f54d99fdb2b3c628873
最近项目从Unity 4 升级到Unity 5或Unity 2017时,在中低端Android机上,帧率降了10多帧,用Adreno Profiler上查了是GPU Bound。
我们游戏对帧率要求比较高, 游戏的时候必须满帧运行, 所以这个问题很明显。经过折腾,最后查出来是Unity 5 之后, 默认开启了Blit, 分辨率越高,GPU压力越大。 尤其在中低端机上,我用的是Adreno 405测试的, Unity 4能满帧, 但Unity 5或者Unity 2017最高才45左右, 简直不能忍。幸运的是,Unity 2017.2,官方终于开放了设置能禁止Blit. 但是Unity 5就没这个运气了, 根据官方的消息,他们暂时还没有计划把这个引入Unity 5.6,
具体帖子可见:https://forum.unity.com/threads/big-performance-issue-with-unity5-on-android.338847
在发现和解决问题的过程中,钱康来同学提供了不少帮助,在此感谢!开这个问题也是让大家知道下,免得像我当初摸石头过河,花太多时间折腾。
该问题来自UWA问答社区,感谢题主的无私分享,建议使用Unity 2017 或者Unity 5 版本的开发者密切注意!如您对该问题仍有疑问,可以转至社区进行进一步交流。
https://answer.uwa4d.com/question/5aa03d
Q:这个[Triggers RebuildInternalState]是隐藏物体就一定会触发的吗?我看Profiler里最后一列都有提示Warning,感觉挺重要的一个错误。这个要怎么去避免呢,是否会导致Animator.Initialize耗时又变得很明显(在之前有做过缓存的情况下)
A:这个是含有Animation组件的GameObject被Deactive时的引擎Warning,在很多情况下确实会造成较高的CPU耗时。对此,建议题主尝试在GameObject不再需要使用时,直接将其移出屏幕外,并将其挂载的Component进行Disable,而非将其GameObject进行Deactive,这样可以RebuildInternalState的发生。
https://answer.uwa4d.com/question/5a2a62cdff95fe
Unreal 4 渲染
Q:你好 我看了UWA关于Unreal全局光照的那篇文章,有几点疑问想问下:
1、Unity的Lightmap烘焙时,为什么不能从Normal map获取Normal信息呢?我看Unreal的Lightmass也是烘焙出两张图,一张方向一张颜色。它的颜色可以受NormalMap的影响吗?
2、Unreal的一个场景多张Lightmap,例如白天到晚上,渐变是怎么融合的呢?
A:1、Lightmap中的Directional信息是指烘焙光照的方向信息。在Lightmap中一张是记录光照的Intensity,一张是记录Direcitonal,这个Directional是用来参与Shading中方向相关计算的,例如:高光计算、与normal计算等。如果是纯Dffuse材质也不用Normalmap,这个Directional信息可以去掉,减少存储和计算量。通常在材质中看到的Normalmap指的是Mesh的Normal与Lightmap中记录的Directional并不是同一个值。
2、Unreal中的Precomputed Lighting Scenarios是保存了多套Lightmap以及光照设置,只能做到配合光照进行Lightmap切换,融合现在貌似还做不到。
Q:烘焙的时候光照的Intensity考虑Normal就类似beast那样,Lightmass烘焙的时候可以提供Normalmap吗?
A:我是这样理解的:Unity烘焙的时候用了辐射度,也就是先把模型分成块,然后计算快与块之间的反射,不会使用Normalmap。Normalmap提供的是细节的信息,全局光照中间接光的计算结果相对比较低频,比较平滑,加入高频的信息不一定会有好的效果。Unreal 4的lightmass可以有一个选项设置Static类型的光源在烘焙的时候使用normal map,其设在project settings-&engine rendering-&lighting中。
https://answer.uwa4d.com/question/5a28b0d08f62e
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点unity3d在实例化数个模型都帧数大幅下降_百度知道
unity3d在实例化数个模型都帧数大幅下降
RT,我在unity3d中实例化了10个以上的球体时就会导致游戏帧数大幅下降,在实例化钱场景中几乎是空的,实例化的球体有一下几个特点:
带有一个负责计算移动的脚本
带有一个光源
求问是什么原因,是因为我的脚本写得太差效率低下么?还是说是其他原因。...
是用在PC平台的,另,每个球体都有一个刚体组件
我有更好的答案
Light,Rigidbody,Script都会影响性能,你可以逐个禁用,不就可以发现是哪个影响最大了吗:)提高性能的办法可以降低光源/阴影的质量、范围……用自编脚本替代Rigidbody……优化物体移动的脚本。还有物体面数多了也会影响性能,考虑是球体又是PC平台,除非你把球体面数做得离谱,否则应该影响不大。
采纳率:90%
根据你说的情况,基本猜测你是脚本写的有些问题。另外,你对实例化的方法理解可能存在一些问题。就实例化10个刚体球,一般不会使游戏帧率变化很大。不太清楚你是不是将实例化写到循环里面了,如果写到循环里面,那么就会出现帧率大减的情况。unity里面最好实例化是场景开始的时候就准备好,另外你实例化时应该提前做好prefab模型才好。
本回答被网友采纳
这个要看用在什么平台上了对于实例化,还是比较耗时的,可以看下对象池ObjectPool方面的内容,会有帮助的
光源,吃内存
估计是移动脚本写的有问题,如果是用刚体移动的话计算量会很大
2条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
unity3d的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。unity接vr眼镜,脚本放上后,帧数就非常低,求大神帮忙解决!_百度知道
unity接vr眼镜,脚本放上后,帧数就非常低,求大神帮忙解决!
unity接vr眼镜,脚本放上后,帧数就非常低,求大神帮忙解决!
电脑配置:i7 5930,x99主板,显卡泰坦。
我有更好的答案
可能VR不行吧
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Unity5.3.3发布安卓遇到的问题,如下图
[问题点数:66分]
Unity5.3.3发布安卓遇到的问题,如下图
[问题点数:66分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2017年3月 .NET技术大版内专家分月排行榜第三2017年2月 .NET技术大版内专家分月排行榜第三2016年9月 .NET技术大版内专家分月排行榜第三2016年8月 .NET技术大版内专家分月排行榜第三2016年7月 .NET技术大版内专家分月排行榜第三2016年3月 .NET技术大版内专家分月排行榜第三2016年1月 .NET技术大版内专家分月排行榜第三2015年12月 .NET技术大版内专家分月排行榜第三2015年11月 .NET技术大版内专家分月排行榜第三
2017年3月 .NET技术大版内专家分月排行榜第三2017年2月 .NET技术大版内专家分月排行榜第三2016年9月 .NET技术大版内专家分月排行榜第三2016年8月 .NET技术大版内专家分月排行榜第三2016年7月 .NET技术大版内专家分月排行榜第三2016年3月 .NET技术大版内专家分月排行榜第三2016年1月 .NET技术大版内专家分月排行榜第三2015年12月 .NET技术大版内专家分月排行榜第三2015年11月 .NET技术大版内专家分月排行榜第三
匿名用户不能发表回复!|没有更多推荐了,
不良信息举报
举报内容:
Unity3D发布安卓时遇到的问题解决办法
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 勇者斗恶龙8 安卓帧数 的文章

 

随机推荐