1. 程式人生 > >【Unity教程】UGUI中如何動態生成精靈的幾種方法

【Unity教程】UGUI中如何動態生成精靈的幾種方法

本篇文章主要說sprite.Load()方法是如何新建精靈的

---1.2D精靈物體的建立

這幾行程式碼是建立2D精靈的主要程式碼,這幾個程式碼都在start()函式中

        //Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;
        //gob = Instantiate(EGO);//上面這兩行程式碼是生成 預製體 物體 的程式碼

        GameObject pic = new GameObject("123/94");
        //載入圖片,進行接收
        Sprite spr = Resources.Load<Sprite>("123/94");
        //新增載入到的圖片資源到2D精靈元件
        pic.AddComponent<SpriteRenderer>().sprite = spr;

執行後,生成了名字為123/94的2D精靈,得到的圖片也是測試用的圖片


第一種情況,把123/94改成了94,因為測試的圖片精靈名字是94

         GameObject pic = new GameObject("94");
        //載入圖片,進行接收
        Sprite spr = Resources.Load<Sprite>("94");
        //新增載入到的圖片資源到2D精靈元件
        pic.AddComponent<SpriteRenderer>().sprite = spr;

生成的精靈物體,名字已經改成了94,但是沒有找到精靈物體


仔細觀察程式碼發現,

         GameObject pic = new GameObject("94");//新建一個空的物體取個名字“94
        //載入圖片,進行接收
        Sprite spr = Resources.Load<Sprite>("123/94");//建立一個精靈元件,路徑為“123/94”
        //新增載入到的圖片資源到2D精靈元件
        pic.AddComponent<SpriteRenderer>().sprite = spr;//把這個精靈元件,新增到 94 物體的元件中

---

Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;
        gob = Instantiate(EGO);

---

這樣也可以生成預製體精靈物體

//給定一個路徑

       S_Path_ClothBasePrefab = "Prefab/Base2DSpriteRenderer";
        //Sprite BGO = Resources.Load<Sprite>(S_Path_ClothBasePrefab);
        //通過名字查到到預製體,型別為Transform,進行轉換,接收
        UnityEngine.Transform Base2DSprite = Resources.Load(S_Path_ClothBasePrefab, typeof(UnityEngine.Transform)) as UnityEngine.Transform;
        gob = Instantiate(Base2DSprite);

使用transform查詢物件比find函式更快

有的字串是最常使用的,最好在初始化的時候定義一個私有字串變數儲存起來

因為使用了using UnityEngine;和using DragonBones;為了區分這兩個名稱空間相同的函式,有的地方字首要加上UnityEngine.用來區分

預製體物體必須放在Resources資料夾下,空的2D精靈,便於建立替換