首页 > 其他 > 详细

从FGUI中取一张图片并返回一个Sprite

时间:2020-12-19 00:00:46      阅读:73      评论:0      收藏:0      [点我收藏+]

从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;
        }
    }

 

从FGUI中取一张图片并返回一个Sprite

原文:https://www.cnblogs.com/kuluodisi/p/14157540.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!