当前位置: 首页 > news >正文

点评网站模板google建网站

点评网站模板,google建网站,网站备案一次吗,网站开发 jsp开发工具Unity 如何获取Texture 的内存大小 在Unity中,要获取Texture的内存文件大小,可以使用UnityEditor.TextureUtil类中的一些函数。这些函数提供了获取存储内存大小和运行时内存大小的方法。由于UnityEditor.TextureUtil是一个内部类,我们需要使…

Unity 如何获取Texture 的内存大小

在Unity中,要获取Texture的内存文件大小,可以使用UnityEditor.TextureUtil类中的一些函数。这些函数提供了获取存储内存大小和运行时内存大小的方法。由于UnityEditor.TextureUtil是一个内部类,我们需要使用反射来访问它。

步骤

  1. 导入UnityEditor命名空间和System.Reflection命名空间:
using UnityEditor;
using System.Reflection;
  1. 创建一个函数来获取Texture的内存文件大小:
public static long GetTextureFileSize(Texture2D texture)
{long fileSize = 0;// 使用反射获取UnityEditor.TextureUtil类的TypeType textureUtilType = typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");// 使用反射获取UnityEditor.TextureUtil类的GetStorageMemorySizeLong方法MethodInfo getStorageMemorySizeLongMethod = textureUtilType.GetMethod("GetStorageMemorySizeLong", BindingFlags.Static | BindingFlags.Public);// 调用GetStorageMemorySizeLong方法获取存储内存大小fileSize = (long)getStorageMemorySizeLongMethod.Invoke(null, new object[] { texture });return fileSize;
}
  1. 创建一个函数来获取Texture的运行时内存大小:
public static long GetTextureRuntimeMemorySize(Texture2D texture)
{long memorySize = 0;// 使用反射获取UnityEditor.TextureUtil类的TypeType textureUtilType = typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");// 使用反射获取UnityEditor.TextureUtil类的GetRuntimeMemorySizeLong方法MethodInfo getRuntimeMemorySizeLongMethod = textureUtilType.GetMethod("GetRuntimeMemorySizeLong", BindingFlags.Static | BindingFlags.Public);// 调用GetRuntimeMemorySizeLong方法获取运行时内存大小memorySize = (long)getRuntimeMemorySizeLongMethod.Invoke(null, new object[] { texture });return memorySize;
}

示例代码

示例 1:获取Texture的存储内存大小

using UnityEngine;
using UnityEditor;
using System.Reflection;public class TextureSizeExample : MonoBehaviour
{[SerializeField]private Texture2D texture;private void Start(){long fileSize = GetTextureFileSize(texture);Debug.Log("Texture File Size: " + fileSize + " bytes");}private static long GetTextureFileSize(Texture2D texture){long fileSize = 0;Type textureUtilType = typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");MethodInfo getStorageMemorySizeLongMethod = textureUtilType.GetMethod("GetStorageMemorySizeLong", BindingFlags.Static | BindingFlags.Public);fileSize = (long)getStorageMemorySizeLongMethod.Invoke(null, new object[] { texture });return fileSize;}
}

示例 2:获取Texture的运行时内存大小

using UnityEngine;
using UnityEditor;
using System.Reflection;public class TextureSizeExample : MonoBehaviour
{[SerializeField]private Texture2D texture;private void Start(){long memorySize = GetTextureRuntimeMemorySize(texture);Debug.Log("Texture Runtime Memory Size: " + memorySize + " bytes");}private static long GetTextureRuntimeMemorySize(Texture2D texture){long memorySize = 0;Type textureUtilType = typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");MethodInfo getRuntimeMemorySizeLongMethod = textureUtilType.GetMethod("GetRuntimeMemorySizeLong", BindingFlags.Static | BindingFlags.Public);memorySize = (long)getRuntimeMemorySizeLongMethod.Invoke(null, new object[] { texture });return memorySize;}
}

示例 3:同时获取Texture的存储内存大小和运行时内存大小

using UnityEngine;
using UnityEditor;
using System.Reflection;public class TextureSizeExample : MonoBehaviour
{[SerializeField]private Texture2D texture;private void Start(){long fileSize = GetTextureFileSize(texture);long memorySize = GetTextureRuntimeMemorySize(texture);Debug.Log("Texture File Size: " + fileSize + " bytes");Debug.Log("Texture Runtime Memory Size: " + memorySize + " bytes");}private static long GetTextureFileSize(Texture2D texture){long fileSize = 0;Type textureUtilType = typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");MethodInfo getStorageMemorySizeLongMethod = textureUtilType.GetMethod("GetStorageMemorySizeLong", BindingFlags.Static | BindingFlags.Public);fileSize = (long)getStorageMemorySizeLongMethod.Invoke(null, new object[] { texture });return fileSize;}private static long GetTextureRuntimeMemorySize(Texture2D texture){long memorySize = 0;Type textureUtilType = typeof(TextureImporter).Assembly.GetType("UnityEditor.TextureUtil");MethodInfo getRuntimeMemorySizeLongMethod = textureUtilType.GetMethod("GetRuntimeMemorySizeLong", BindingFlags.Static | BindingFlags.Public);memorySize = (long)getRuntimeMemorySizeLongMethod.Invoke(null, new object[] { texture });return memorySize;}
}

注意事项

  • 确保在使用反射访问UnityEditor.TextureUtil类之前,已经导入了UnityEditor命名空间和System.Reflection命名空间。
  • 使用反射时,需要使用BindingFlags.Static | BindingFlags.Public来获取静态公共方法。
  • 在示例代码中,我们使用了Texture2D类型的变量来表示Texture,你可以根据实际情况修改代码以适应不同的Texture类型。
http://www.yayakq.cn/news/481115/

相关文章:

  • 礼品册兑换 网站建设html格式的网站地图
  • 廊坊手机模板建站网络规划设计师的意义
  • 高古楼网站 做窗子网络营销策略有哪几种
  • 平台网站开发ps网页设计效果图
  • 微软网站开发工具平面设计上班都干啥
  • 阳泉推广型网站建设域名注册流程
  • 北京建设信源资讯有限公司网站visual composer wordpress
  • 各种网站的区别app推广30元一单
  • 深圳市住建设局网站东莞做网站优化天助网络
  • 深圳乐安居网站谁做的深圳网站建设网络推广公司
  • 网站备案 空间中建八局第一建设有限公司设计院
  • 企业服务类网站整合网络营销外包团队优势
  • 辽阳银梦网站建设免费空间说说赞
  • 京东联盟推广网站wordpress lang
  • html网站源码企业wordpress主题免费下载
  • 国外做旅游攻略的网站好找网络公司做推广费用
  • 二手房在哪个网站做合同网站的推广费用票可以做抵扣吗
  • 双流区规划建设局网站网站制作大连
  • 衡阳做淘宝网站高端大气网站案例
  • 宁夏制作网站公司WordPress文章相册修改
  • 制作二维码生成器seo职业技能培训班
  • 云服务器价格购买价格表网站排名优化策划
  • 怎么做电影网站毕业设计(论文)-基于cms的校园网站建设
  • 免费网站建设凡科网站建设与管理实践实践报告
  • 商城网站建设要多少钱更换网站域名 推广
  • 备案的网站是公司吗怎么用一级域名搭建网站
  • 网站免费高清素材软件电商网页美工设计
  • 全国广告设计邢台关键词优化公司
  • 网站建设的可行性谷歌seo引擎优化
  • 服装电子商务网站建设建设银行江门市新会网站