// 使用反射获取UnityEditor.TextureUtil类的GetStorageMemorySizeLong方法 MethodInfo getStorageMemorySizeLongMethod = textureUtilType.GetMethod("GetStorageMemorySizeLong", BindingFlags.Static | BindingFlags.Public); // 调用GetStorageMemorySizeLong方法获取存储内存大小 fileSize = (long)getStorageMemorySizeLongMe...
创建一个函数来获取Texture的运行时内存大小: publicstaticlongGetTextureRuntimeMemorySize(Texture2Dtexture){longmemorySize=0;// 使用反射获取UnityEditor.TextureUtil类的TypeTypetextureUtilType=typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");// 使用反射获取UnityEditor.TextureUtil类的GetRunti...
publicstaticlongGetTextureRuntimeMemorySize(Texture2D texture){longmemorySize =0;// 使用反射获取UnityEditor.TextureUtil类的TypeType textureUtilType =typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");// 使用反射获取UnityEditor.TextureUtil类的GetRuntimeMemorySizeLong方法MethodInfo getRuntim...
textureNum++; longmemoryUsed = Profiler.GetRuntimeMemorySizeLong(t); Debug.Log("Texture: "+ t.name +": Memory: "+ (memoryUsed / 1000000f)); textureMemory += memoryUsed; } //Debug.LogError("texture num:"+tnum +" memory:"+ totalTextureMemorySize); //return totalTextureMemorySize; }...
private static int GetStorageMemorySize(Texture texture) { if (GetStorageMemorySize1 == null) { var assembly = typeof(AssetDatabase).Assembly; var custom = assembly.GetType("UnityEditor.TextureUtil"); GetStorageMemorySize1 = custom.GetMethod("GetStorageMemorySize", BindingFlags.Public | BindingF...
Texture.currentTextureMemory:所有纹理当前使用的内存量。 Texture.streamingTextureDiscardUnusedMips:该值默认为False,当其设置为True时,Unity会强制纹理串流系统去丢弃所有未使用的Mipmap而不是缓存它们。因为纹理串流系统也是使用一个类似内存池的管理方式,假设物体距离摄像机变远,此时计算出的Mip等级变高,但纹理串流系统...
var type = Types.GetType ("UnityEditor.TextureUtil","UnityEditor.dll"); MethodInfo methodInfo = type.GetMethod ("GetStorageMemorySize", BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public); Debug.Log("内存占用:"EditorUtility.FormatBytes(Profiler.GetRuntimeMemorySize(Selection.activeObject...
Texture.currentTextureMemory:所有纹理当前使用的内存量。 Texture.streamingTextureDiscardUnusedMips:该值默认为False,当其设置为True时,Unity会强制纹理串流系统去丢弃所有未使用的Mipmap而不是缓存它们。因为纹理串流系统也是使用一个类似内存池的管理方式,假设物体距离摄像机变远,此时计算出的Mip等级变高,但纹理串流系统...
减小Max Size :使用能生成视觉上可接受的结果的最低设置。这种非破坏性方式,可以快速降低纹理内存。 使用2 的幂 (POT) :Unity 要求移动端纹理压缩格式(PVRCT 或 ETC)采用 POT 纹理尺寸。 制作纹理图集 :将多个纹理放置到单个纹理中,可以减少绘制调用和加快渲染速度。使用 Unity 精灵图集 或第三方 Texture Packer...
vartype=Types.GetType("UnityEditor.TextureUtil","UnityEditor.dll"); MethodInfomethodInfo=type.GetMethod("GetStorageMemorySize",BindingFlags.Static|BindingFlags.Instance|BindingFlags.Public); Debug.Log("内存占用:"+EditorUtility.FormatBytes(Profiler.GetRuntimeMemorySize(Selection.activeObject))); ...