可以顯示網路上的圖片、電腦上的圖片、手機上的圖片,不過在此我只示範讀取網路和電腦上的圖片。

 

一樣先引入NGUI,這次示範的NGUI版本為3.5.8 (NGUI真的是太好用了!輕鬆解決各種不同螢幕大小的問題)

再來選擇NGUI → Create → Texture

 

新增Texture後,將其設定為貼齊螢幕範圍(貼齊螢幕範圍的方法請參考我的這篇文章),再來建立一個C# Scrpit,命名為test

由於用不到Main Camera所以刪掉,最後會呈現下面這張圖的樣子

 

先準備好兩張圖片,一張為電腦上的圖片(放在桌面上),一張為網路上的圖片,就可以開始撰寫程式碼了。

P.S.這篇文章會使用到StartCoroutine和yield return這兩個方法和關鍵字,這兩個的意思可以看這篇文章


 

 

using UnityEngine;
using System.Collections;

public class test : MonoBehaviour
{
    private string file_on_PC;//電腦上的圖片完整路徑
    private string file_on_web;//網路上的圖片完整網址
    private UITexture show;//將圖片顯示在Texture上,詳情請看(註1)
    private Texture2D picture;

    void Start()
    {
        //使用電腦上的圖片的格式為  "file://" + filePath + "\完整檔名(限英+數)"
        //這邊使用小老鼠'@'的用意為取消反斜線'\'本身的作用,也可以將每個反斜線前面在多個反斜線,也就是'\\'
        file_on_PC = "file://" + @"C:\Users\Lin\Desktop\MyPicture.png";

        //網路圖片,直接給予完整的網址即可
        file_on_web = "http://images5.fanpop.com/image/photos/25500000/Saber-Lily-fate-stay-night-25551575-985-738.jpg";

 

        //指定show這個元件所在的位置
        show = GameObject.Find("UI Root/Texture").GetComponent<UITexture>();
    }

    private IEnumerator show_on_PC_picture()
    {
        //引入檔案必須使用WWW類別,此類別放在UnityEngine內
        WWW PC_picture = new WWW(file_on_PC);
        yield return PC_picture;//等待圖片路徑載入完成才繼續下面的步驟

        picture = PC_picture.texture;//載入圖片
        show.mainTexture = picture;//顯示圖片
    }

    private IEnumerator show_on_web_picture()
    {

        //引入檔案必須使用WWW類別,此類別放在UnityEngine內
        WWW web_picture = new WWW(file_on_web);
        yield return web_picture;//等待圖片路徑載入完成才繼續下面的步驟

        picture = web_picture.texture;//載入圖片
        show.mainTexture = picture;//顯示圖片
    }

    void OnGUI()
    {
        if (GUI.Button(new Rect(0, 0, 100, 50), "電腦上的圖片") == true)
            StartCoroutine(show_on_PC_picture());
        if (GUI.Button(new Rect(0, 70, 100, 50), "網路上的圖片") == true)
            StartCoroutine(show_on_web_picture());
    }
}


 

編寫好後存檔,將此script拖到UI Root上,執行!

 

剛執行時由於還沒載入圖片,所以呈現一片黑

 

按下"電腦上的圖片"時...

 

按下"網路上的圖片"時...

 

 

任意調整視窗大小,可以發現圖片也跟著視窗改變了大小!

 

 

(註1)

請看紅色框框的地方,Texture要顯示的圖片都是在UITexture的Texture上設定,所以若要控制圖片顯示的位置,則必須產生UITexture的物件,再由此物件去引入圖片。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Yang 的頭像
    Yang

    Yang的部落格(轉貼文章請註記來源)

    Yang 發表在 痞客邦 留言(0) 人氣()