• Unity_读取本地图片资源(笔记--转)


      我们以Unity读取本地图片资源为例,总结三种读取方法:

    1.采用Resource.Load方法读取,读取在Unity中Assets下Resources目录下的资源名,注意不采用后缀名。(意思是Load方法直接在Resources目录下找资源,路径已经指定)。           
                //加载图片方式1;(图片要放入在Assets/Resources/目录下);
                Texture2D _tex = (Texture2D)Resources.Load("Lighthouse");

    2.采用WWW类加载资源,此WWW类可以加载网络资源(http://格式),文件协议资源(flie://格式),ftp格式等等。
                //加载图片方式2;(可以加载网络服务器和本地图片);
                string filePath = "file://" + Application.dataPath + @"/_Image/grid.png";
                WWW www = new WWW(filePath);
                yield return www ;

    3.采用C#的Image类进行图片的加载,获取Image类中的图片数据,为Unity中Texture2D的数据填充。注意此种方式可能出现的问题:
             Assets/_Script/AddObjBtnEvent.cs(57,20): error CS0234: The type or namespace name `Drawing' does not exist in the namespace `System'. Are you missing an assembly reference?

            解决方法之一:
            D:Program FilesUnityEditorDataMonolibmono2.0System.Drawing.dll将此路径下的System.Drawing.dll拖入到Project面板层次下,即可编译通过。

                //加载图片方式3;
                filePath = Application.dataPath + @"/_Image/grid.png";
                FileStream fs = new FileStream(filePath,FileMode.Open,FileAccess.Read);
                System.Drawing.Image img = System.Drawing.Image.FromStream(fs);
    //System.Drawing.Image.FromFile(filePath); //方法二加载图片方式。
              
                MemoryStream ms = new MemoryStream();
                img.Save(ms,System.Drawing.Imaging.ImageFormat.Png);

                Texture2D _tex2 = new Texture2D(128, 128);
                _tex2.LoadImage(ms.ToArray());

                //此处为GameObject的材质类附上读取的纹理;
                _newObj.renderer.material.mainTexture = _tex2;

    转载:http://wuzhouyi2012.blog.163.com/blog/static/204968271201301744231736/

  • 相关阅读:
    Mockito 简明教程
    说说初用 Mock 工具测试碰到的坑
    java的mock测试框架
    使用模拟对象(Mock Object)技术进行测试驱动开发
    微信小程序
    微信小程序
    uniapp
    微信小程序
    微信小程序
    微信小程序
  • 原文地址:https://www.cnblogs.com/Roz-001/p/11304605.html
Copyright © 2020-2023  润新知