【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精靈,便於建立替換