我的項目有多個位於Assets \ Sprites中的精靈,我想用C#腳本加載。爲什麼Resources.Load <Sprite>返回null?
我測試了這一點:
Sprite myFruit = Resources.Load <Sprite> ("Graphics_3");
但myFruit
仍然是空。
我的項目有多個位於Assets \ Sprites中的精靈,我想用C#腳本加載。爲什麼Resources.Load <Sprite>返回null?
我測試了這一點:
Sprite myFruit = Resources.Load <Sprite> ("Graphics_3");
但myFruit
仍然是空。
Resources.Load
將搜索Assets/Resources
中的目錄。
如果你想把它放到Sprites
目錄下,然後把它放在Resources
(例如Assets/Resources/Sprites
)。
然後,你可以加載它是這樣的:
Sprite myFruit = Resources.Load <Sprite> ("Sprites/Graphics_3");
另外,還要確保你設置你的圖像類型的檢查雪碧。
如果要加載多個精靈,使用此:
Sprite[] myFruit = Resources.LoadAll <Sprite> ("Sprites/Graphics_3");
詳情請參閱this。
您需要輸入資產的完整路徑。在這種情況下,請嘗試使用路徑「Sprites/Graphics_3」。
廣場awesome.png
在Assets/Resources/
(你可以有子文件夾),並使用:
GetComponent<SpriteRenderer>().sprite =
Resources.Load<Sprite>("awesome"); // No file extension.
http://docs.unity3d.com/ScriptReference/Resources.html
還有LoadAll是「加載所有資產路徑的文件夾或文件中的一個資源文件夾「。
Sprite sp = Resources.LoadAll<Sprite> ("Sprites/AI-Avtar") [2] as Sprite;
Resources.Load在目錄中搜索 「資產/資源」 這就是爲什麼你需要做的
_sprites = Resources.LoadAll<Sprite>(spritesPath);
或
_sprites = Resources.Load<Sprite>(spritesPath);
與spritesPath爲相對路徑。 如果您需要從文件夾「Assets/Resources/Sprites」中加載所有文件,則只需要編寫「Sprites」。
在這之後你可以做到以下幾點:
var sprite = sprites[0];
或
var sprite = _sprites.Where(a => a.name == "Sprite_Name_Needed").First();
統一的腳本參考不說,你需要Load
後馬上寫<Sprite>
。所以我有加載精靈的問題,雖然我的精靈在Resources目錄中。
如果我加載一個精靈,它的工作!但我測試了多個精靈,它沒有工作,並且場景暫停了! –
我已經編輯了我的答案,也許這就是你想要的 –
謝謝你,我正在嘗試它! –