为了确保你可以轻松的使用Texture Manager 功能,在使用Texture Manager 功能之前,我们建议可以按照Endless Runner工程为示范,来学习如何正确的使用Texture Manager 来管理你的贴图。此外,文档主要介绍设置贴图管理的基本步骤和一些功能的基本概念。在下一个章节会详细的介绍功能的所有细节和接口。
这一步需要保证你的引擎版本是正确的,并且已经安装了小游戏WeixinMiniGamePlayer
Start
场景,设置Game屏幕分辨率,点击Play
进入游戏,确保可以正确运行。Web Streaming
,可以设置Priority Level和Uploaded Mode。demo中我们将贴图的Uploaded Mode全部设置为uploaded reference其中Priority Level代表贴图上传优先级,通常我们认为项目中比较重要的贴图会设置high,一般使用默认值即可,Uploaded Mode代表上传方式,uploaded immediately 表示会被立即上传,上传时机和传统贴图一样。uploaded reference 是表示贴图只有被引用才会上传到GPU。而upload by renderer则是需要贴图被场景中的mesh renderer 或者skinned mesh renderer 引用的贴图才会上传。
为了批量设置贴图,我们准备了批量设置脚本,package下载链接如下:点击下载
导入PackageTextureManagerUtility
点击“Texture Manager->Set Texture WebStreaming”可为所有的贴图资源勾选上WebStreaming。
不同平台的贴图压缩格式有各自的设置,需要确保TextureManager的WebStreamingData能够适配不同的平台。
Texture Format Platform
,如下图所示,为不同平台设置不同的贴图压缩格式;点击“Generate Texture Web Streaming Data”,生成WebStreamingData。“Generate Texture Web Streaming Data” 目前在OSX和Linux 平台不生效,需要自己主动调用TextureManager.GenerateMultiPlatformWebStreamingDataInternal(string[] guids) 生成数据
//根据硬件环境切换TextureManager支持的格式。
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]
static void OnBeforeSplashScreen()
{
if (SystemInfo.graphicsDeviceName.Contains("RTX"))
TextureManager.SetSupportTextureFromat("win");
else
{
TextureManager.SetSupportTextureFromat("web");
}
}
立即免费试用
进入应用面板。创建新的项目
创建一个名为 Endless_Runner 的项目,然后启用UOS(如已有 Endless_Runner
项目可直接启用UOS)。Endless_Runner
。切换到RELEASES,创建新的发布版本。
复制Entry URL前缀,该前缀将作为Texture Manager的CDN
下一步骤中微信小游戏的游戏资源CDN。
注:Remove一次后,可能没完全移除,需要再Remove一次。
微信小游戏转换工具面板
左下角的“更多配置项”,在Inspector面板的Project Conf->Bundle Path Identifier中加入“TexRes”。注:打包时如果遇到下面的报错,请确认安装了node.js,并且在系统环境变量的path中添加了node.js安装路径。
Endless_Runner
。注:该步骤不限于Uos CDN,可以使用本地的或者自己的服务器,只需将游戏资源CDN替换为自己的IP地址。
Endless_Runner
。注:“生成并转换”小游戏会使xxxx.webgl.data.unityweb.bin.txt文件被更新,需要在UOS CDN上更新并创建新的发布版本。
Texture manager 主要解决什么问题?
答:解决WebGL或者微信小游戏中项目中贴图资源使用不合理、资源包贴图资源冗余等问题导致的内存消耗以及多平台资源格式不同。目标是通过单独的资源管理模块实现对游戏项目中贴图资源的全生命周期管理。
Texture manager 可以使用自己的CDN吗?
答:可以设置成自己的CDN服务 ,目我们推荐采用Unity的CDN,后续我们会在集成Unity CDN的一些功能做资源的优化,如采用针对小文件性能友好的H2协议、通过CDN历史加载数据动态优化数据加载,版本控制管理等功能。
Texture manager 目前支持的图片格式类型有哪些?
答:普通的Texture2D格式、天空盒、Sprite(2D and UI)、图集等均支持。
目前重度项目中有内部测试过吗,会存在那些已知问题?
答:目前在内部测试重度项目,过程中,主要是生成资源较慢,资源有的可能生成数据丢失难以定位,资源设置比较麻烦。针对这些问题,我们也在积极开发解决方案,如贴图数据并行生成,Texture Manager Browser Package 帮助用户集中管理贴图。