【Unity3D】Unity工程加载Gif图片发布为WEBGL版本

文章目录


前言

在unity工程中实现组态图,其中有些组态图(平面图)中的设备需要将运行状态动态展示(也可也做成动画,但是对动画的编辑还在学习中就没有实施)。百度了一些文章和资料,主要是思路:将Gif动画中的序列帧转换成Texture2D列表,然后通过通过控制Texture2D列表的索引进行播放和启停。查询的资料以System.Drawing.Image进行加载的居多,但是发布成WEBGL后不显示,后来查询到使用UniGif第三方脚本进行加载,可以显示出来。


提示:以下是本篇文章正文内容,下面案例可供参考

一、System.Drawing.dll如何引入?

来源:D:\Program Files\Unity\Editor\Data\MonoBleedingEdge\lib\mono\unityjit文件夹下的System.Drawing.dll。

也就是Unity安装目录下的Unity\Editor\Data\MonoBleedingEdge\lib\mono\unityjit;其他文件夹也会存在System.Drawing.dll,但是引入后会有错误。

放置到:工程下的\Assets\内;具体的路径可根据个人喜好进行设置;

二、使用步骤

1.代码示例

代码如下(示例):具体可参考Unity项目中加载Gif图片的Demo工程

其中主要代码:

 void Start()
    {
        // 如果控件上不设置路径,则不需要先加载gif
        if (string.IsNullOrEmpty(runImagePath)) return;
        string runImageFullPath = Application.streamingAssetsPath + "/" + runImagePath;
        Debug.Log("Start runImageFullPath ="+ runImageFullPath);
        SetRunGif(runImageFullPath);
       
    }
   private void SetRunGif(string path)
    {
        if (string.IsNullOrEmpty(path)) return;
        Debug.LogFormat("SetRunGif path = {0},File.Exists = {1}",path, File.Exists(path));
        StartCoroutine(LoadWordPic(path));
    }
  IEnumerator LoadWordPic(string path)
    {
        string url = "";
        if (Application.isEditor)
        {
            url = "file:///" + path;
        }
        else
        {
            url = path;
        }
        Debug.Log("LoadWordPic url ="+ url);
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();
        if (!(request.isHttpError || request.isNetworkError))
        {
            byte[] bytes = request.downloadHandler.data;
            System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes);
            var image = System.Drawing.Image.FromStream(ms,false);
            _runTex2DList = GifImageUtils.GifToTexture2D(image);
            _framCount = _runTex2DList.Count;
            Debug.Log("SetRunGif _framCount =" + _framCount);
        }
      
    }

2.读入数据

代码如下(示例):

data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv') print(data.head()) 

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

System.Drawing.Image加载GIF图片

System.Drawing.dll来源

Player Setting

发布WEBGL失败

UniGif加载GIF图片

UniGif核心代码来源

使用核心代码

发布webgl成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhchyun2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值