zoukankan      html  css  js  c++  java
  • 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版本的解决方案。

  • 相关阅读:
    【游戏】有趣的小游戏合集
    “卖我一枝笔”:如何史蒂夫·乔布斯将这一经典问题作出回应?
    Codeforces548D:Mike and Feet(单调栈)
    一对多自身关联双向映射
    MVC action返回partialView前台html 拼接
    c#关于委托和事件
    中国A股市场缘何遭遇9连跌?
    vb.net 字符串的操作 应用
    BitNami Redmine Stack
    窥探内存管理
  • 原文地址:https://www.cnblogs.com/unionfind/p/3592026.html
Copyright © 2011-2022 走看看