unity知识点收集笔记

来源:互联网 发布:桃之卵淘宝 编辑:程序博客网 时间:2024/04/30 01:19

1.unity5打包AssetBundle的时候,有时候发现即使场景没有发生变化,但是一旦切换了场景,场景的Hash值就会发生了变化,导致每次导出资源场景都重新导出,浪费了很多时间,是什么原因造成的呢?

原因:在不同的场景下打包同一个资源或场景时,如果出现AssetBundle的差异,目前很可能是Shader Stripping造成的,其原理可见文档:https://docs.unity3d.com/Manual/class-GraphicsSettings.html简单来说就是根据当前场景对Shader进行简化,因此如果打包时包含的场景的Lightmap或Fog设置不同,打出来的AssetBundle包也有可能是不同的。可以尝试通过把Graphics Settings中的Shader Stripping设置进行修改来避免这个问题。(参考自: http://blog.uwa4d.com/archives/TechSharing_37.html)

2.Resources.Load加载的资源用完后立刻删除的方法

先把资源删掉 再卸载 如果不删除直接调用unloadasset无用
DestroyImmediate(LoadTexture.mainTexture, true);
Resources.UnloadAsset(LoadTexture.mainTexture);

3.unity切换场景很慢
unity切换场景的时候会调用gc和资源内存收集(同步加载一次上述操作,异步加载两次上述操作,在gc和资源标记回收的时候程序都会卡死),分配的堆内存越大,当前场景的资源越多,卡顿越长。把新的场景加载到内存中(实例化),新的场景资源物体越多,卡顿也越长。

4.Application.streamingAssetsPath在pc上可以用File.Exist和Directory.Exist检测里面的文件是否存在,但是在安卓设备上无效。
5.打包时QualityManager中的设置一般选择Simple,或者Good(原始的配置),Fatest对图片的分辨率改变,看起来更模糊。
6.unityWWW加载txt中的内容总是提示格式错误,Json也无法解析,出现无法识别的字符?
原因: www加载的txt不能是UTF8格式,应该是UTF8无BOM格式



0 0