切换到宽版
  • 1062阅读
  • 0回复

【Unity3D】【NGUI】Atlas的动态创建(1) [复制链接]

上一主题 下一主题
离线樱の光
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2015-09-09
NGUI版本:3.6.5

1、参见SZUIAtlasMakerRuntimeTest设置相应的值以上值需要提前设置好
2、没有检查是否atlas能够正确创建,自己可以改,加入返回值
3、代码都是在NGUI里面拷贝出来的,只是进行改动,没有新代码
4、适用与那种从网上下图片,之后还不想用UITexture的人,但是还是建议用UITexture如果drawcall不是问题的话
5、自己以后更新按我的方式改改就可以
6、动态创建速度较慢,建议在游戏启动的时候运行
7、游戏时可以将创建的atlas保存到可写目录,避免每次都新创建

SZUIAtlasMakerRuntimeTest.cs
  1. using UnityEngine;
  2. using System.Collections;
  3. public class SZUIAtlasMakerRuntimeTest : MonoBehaviour {
  4.     public Texture2D[] texs;
  5.     public UISprite sprite;
  6.     private UIAtlas atlas;
  7.     void Start () {
  8.         SZUIAtlasMakerRuntime.atlasTrimming = true;
  9.         SZUIAtlasMakerRuntime.atlasPMA = atlas != null ? atlas.premultipliedAlpha : false;
  10.         SZUIAtlasMakerRuntime.unityPacking = false;
  11.         SZUIAtlasMakerRuntime.atlasPadding = 1;
  12.         SZUIAtlasMakerRuntime.allow4096 = true;
  13.         SZUIAtlasMakerRuntime.UITexturePacker.forceSquareAtlas = true;
  14.         if (atlas == null)
  15.         {
  16.             atlas = this.gameObject.AddComponent<UIAtlas>();
  17.         }
  18.         string lastName = string.Empty;
  19.         foreach (var tex in texs)
  20.         {
  21.             SZUIAtlasMakerRuntime.AddOrUpdate(atlas, tex);
  22.             lastName = tex.name;
  23.         }
  24.         sprite.atlas = atlas;
  25.         sprite.spriteName = lastName;
  26.     }
  27. }


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
快速回复
限200 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个