Unity+NGUI中关于多分辨率对应多套资源的解决方案

游戏初始的资源总是做到最高清的,但是其实低端设备没有那么好的分辨率,也没有那么多的内存支持,所以通常就会希望对这些设备做一套低清资源。前面谈到过Cocos2d-x结合CocosBuilder的解决方案,现在发现Unity+NGUI也有对应的做法。

 

首先明确一个概念就是在这个解决方案中,不管是高分辨率还是低分辨率下,对于一个控件而言,控件自己的尺寸是固定的,变化的是两套atlas。

对于atlas而言,首先png尺寸上是差了一半,然后所有sprite类似于uv这样的位置大小参数,也变化成一半,最后有一个叫Pixel Size的参数,要变成两倍。如果贴图缩小了一半,那么贴图里一个像素占的位置就应该增加一倍,所以注意保持各款配置中,贴图尺寸*PixelSize的值一样就行了。

 

接下来对应使用了atlas的ui prefab,我们可以写代码自动生成一份half版本,把所有的贴图引用改成指向half贴图。其实在NGUI里面还提供了另一种解决方案:atlas除了标准版之外,还可以选择一种引用版,专门用于指向具体的标准atlas。可以在ui prefab里面全部使用这种引用atlas,然后再根据具体情况指定引用atlas指向正确的版本。

 

这个做法有个问题就是如果想在平时的工作中看到效果,引用atlas必定要已经指向某个版本。但是最后如果这样直接打包,那么载入的时候,会先载入已经指向的版本,再载入正确的版本。所以官方推荐做法是在做版本之前,把这些引用atlas的指向都先清空。我觉得还好,但是同事觉得麻烦,目前就还是用的代码自动生成half版本的解决方案。

posted @ 2014-03-10 16:16  unionfind  阅读(513)  评论(0编辑  收藏  举报