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 Files\Unity\Editor\Data\Mono\lib\mono\2.0\System.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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM