2016-06-11 60 views
0

我有我的資產的文件夾資源和圖像pig.png裏面,我想創建代碼與此圖像一個精靈,這裏是我的代碼:創建2D精靈與資產保存的圖像

var filePath = Application.dataPath + "/Resources/pig.png"; 
       if (System.IO.File.Exists(filePath)) 
       { 
        var bytes = System.IO.File.ReadAllBytes(filePath); 
        Texture2D tex = new Texture2D(1, 1); 
        tex.LoadImage(bytes); 
        Sprite sp = new Sprite(); 
        sp = Sprite.Create(tex, new Rect(0, 0, 100, 100), new Vector2(0.5f, 0.5f),40); 
       } 

當我點擊gui中的按鈕時,代碼會運行,怎麼了?

固定碼:

 Texture2D tex = Resources.Load<Texture2D>("pig") as Texture2D; 
     Sprite sprite = new Sprite(); 
     sprite = Sprite.Create(tex, new Rect(0, 0, 250, 150), new Vector2(0.5f, 0.5f)); 
     GameObject newSprite = new GameObject(); 
     newSprite.AddComponent<SpriteRenderer>(); 
     SpriteRenderer SR = newSprite.GetComponent<SpriteRenderer>(); 
     SR.sprite = sprite; 

回答

2

如果你的豬形象是在Assets/Resources文件夾,然後你有Resources.Load功能不加載圖像與File.ReadAllBytes

//Assign Sprite from Editor. (Where to display the loaded image sprite) 
public Image displaySprite; 

void loadImage() 
{ 
    //Load Image 
    Texture2D tex = Resources.Load("pig", typeof(Texture2D)) as Texture2D; 
    if (tex != null) 
    { 
     //Create new Sprite from the Loaded Sprite 
     Sprite sp = new Sprite(); 
     sp = Sprite.Create(tex, new Rect(0, 0, 100, 100), new Vector2(0.5f, 0.5f), 40); 
     Debug.Log("Not Null"); 

     //Show Image to screen 
     displaySprite.sprite = sp; 
    } 
    else 
    { 
     Debug.Log("Null"); 
    } 

} 
+1

謝謝,我已經添加了我的最終代碼,它的工作原理。謝謝 :) – DAVIDBALAS1