zoukankan      html  css  js  c++  java
  • NGUI 制作动态图集

    List<Texture2Dtextures=new List<Texture2D>();
            List<UIAtlas.Spritesprits = new List<UIAtlas.Sprite> ();

            for (int i=batch*batchQuantityi<batchQuantity*(batch+1); ++i) {

                if(i==itemGos.Count)
                {
                    Logger.log("i = "+i+" itemGos = "+itemGos.Count);

                    break;
                }

                UIFriendItem fi=itemGos[i].GetComponent<UIFriendItem>();
                string tempUrl=facebookGraphURL+"/"+fi.firendId+"/picture?access_token="+FacebookCenter.instance.GetAccessToken();
                if(WebTextureCache.InstantiateGlobal().ImageCache.ContainsKey(tempUrl))
                {
                    if(WebTextureCache.InstantiateGlobal().ImageCache[tempUrl].width==50)
                    {
                        textures.Add(WebTextureCache.InstantiateGlobal().ImageCache[tempUrl]);
                        UIAtlas.Sprite sp = new UIAtlas.Sprite ();
                        sp.name=fi.firendId;
                        sprits.Add(sp);
                    }
                }
                
            }

            //
            if(textures.Count>0)
            {
                textures.Add((Texture2D)Resources.Load("Others/photoFrame"));
                UIAtlas.Sprite sp = new UIAtlas.Sprite ();
                sp.name="photoFrame";
                sprits.Add(sp);
                ///------------
                Texture2D atlas = new Texture2D(20482048);
                Rect[] rects;
                rects = atlas.PackTextures ((Texture2D[])textures.ToArray (),0,2048);
                Logger.log("the length is + "+rects.Length);

                if (rects.Length != sprits.Count) {
                    Logger.log("error!! length not match ");
                        }

                for(int i=0i<rects.Length ; ++i)
                {
                    rects[i]=NGUIMath.ConvertToPixels(rects[i], atlas.widthatlas.heighttrue);
                    sprits[i].inner=rects[i];
                    sprits[i].outer=rects[i];
                    //Logger.log(rects[i]);
                }


                Material mat = new Material("atlasMat"+batch.ToString());
                mat.shaderShader.Find("Unlit/Transparent Colored");
                if (mat.shader == null) {
                    Logger.logError("shader is null");
                    }
                mat.mainTexture=atlas;

                var gameobject = new GameObject ("atlasBatch"+batch.ToString());
                UIAtlas newAtlas=gameobject.AddComponent<UIAtlas> ();
                newAtlas.spriteList = sprits;
                newAtlas.spriteMaterial = mat;
                //newAtlas.coordinates = UIAtlas.Coordinates.TexCoords;

                Logger.log("successfully build atlas for batch " +batch.ToString());
                //Logger.log(newAtlas.spriteMaterial.ToString());
            

                createdAtlas.Add (batchnewAtlas);
                batchCompleted.Add (batch);
                batchProcessing.Remove (batch);
            }
            else{
                batchProcessing.Remove (batch);
                Logger.log("picture download failed " +batch.ToString());
            }

  • 相关阅读:
    hangfire+bootstrap ace 模板实现后台任务管理平台
    jquery.tagthis和jquery.autocomplete一起实现标签
    jquery.autocomplete自动补齐和自定义格式
    C#控制台程序的参数解析类库 CommandLine简单使用说明
    排序算法之折半插入排序的思想以及Java实现
    排序算法之直接插入排序的思想以及Java实现
    Call to a member function display() on a non-object问题的解决
    jQuery设置元素的readonly和disabled属性
    JAVA之Math类常用数学运算记录
    Syntax error, parameterized types are only available if source level is 1.5 解决方案
  • 原文地址:https://www.cnblogs.com/qqqeeebbb/p/3549535.html
Copyright © 2011-2022 走看看