zoukankan      html  css  js  c++  java
  • 从FGUI中取一张图片并返回一个Sprite

    从Fgui中的图集中取一个图素,把图素用到场景等非UI的地方。

    此操作会动态创建一个Sprite对象,效率不好,不适合大量使用。

     private static Dictionary<string, Sprite> cacheSpriteByFGUIDic = new Dictionary<string, Sprite>();
    /// <summary>
        /// 从FGUI中取一张图片并返回一个Sprite(不建议频繁使用)
        /// </summary>
        /// <param name="packageName"></param>
        /// <param name="texName"></param>
        public static Sprite GetSpriteByFGUI(string packageName, string texName)
        {
            if (cacheSpriteByFGUIDic.ContainsKey(texName))
                return cacheSpriteByFGUIDic[texName];
            else
            {
                FairyGUI.GImage gImage = FairyGUI.UIPackage.CreateObject(packageName, texName).asImage;
                Rect rect = new Rect(gImage.texture.uvRect.x * gImage.texture.nativeTexture.width, gImage.texture.uvRect.y * gImage.texture.nativeTexture.height,
                   gImage.texture.uvRect.width * gImage.texture.nativeTexture.width, gImage.texture.uvRect.height * gImage.texture.nativeTexture.height);
                Sprite sprite = Sprite.Create((Texture2D)gImage.texture.nativeTexture, rect, new Vector2(0.5f, 0.5f), 100);
                gImage.Dispose();
                cacheSpriteByFGUIDic.Add(texName, sprite);
                return sprite;
            }
        }
  • 相关阅读:
    unityshader学习笔记3
    unityshader学习笔记2
    unityshader学习笔记1
    AssetBundle资源打包与加载
    lua学习笔记4--XLua
    lua学习笔记3--lua与c#交互
    lua学习笔记2--table
    cocos2dx-android-添加64位编译
    lua学习笔记1--基础语法
    使用青花瓷(charles)抓包
  • 原文地址:https://www.cnblogs.com/kuluodisi/p/14157540.html
Copyright © 2011-2022 走看看