Unity:(js) 将资产文件夹中的 PNG 加载到 UI 图像



在我的 Unity 项目中,在画布下,我创建了一个空白的 UI 图像。 另一方面,在资产文件夹中,我有多个 PNG。 我希望通过脚本将 UI 图像设置为文件夹中的随机 PNG。 我该怎么做?我应该将脚本附加到 UI 图像还是 UI 画布?有人可以给我看一个示例脚本(js,而不是 c#(吗?谢谢。

装箱一个名为Resources的文件夹和一个名为Sprites的子文件夹。将精灵放入此文件夹(如@SurajS所示,图像在图像导入设置中必须具有Sprite纹理类型(。

创建一个图像元素并附加以下 UnityScript :

function Start () {
var image : UnityEngine.UI.Image = GetComponent.<UnityEngine.UI.Image>();
var sprites : Object[] = Resources.LoadAll("Sprites", Sprite);
image.sprite = sprites[Random.Range(0, sprites.Length)] as Sprite;
}

更好的解决方案(更高效(

将以下脚本附加到所需的游戏对象(您的图像、画布甚至空的(

#pragma strict
public var image : UnityEngine.UI.Image;
public var sprites : Sprite[];
function Start () {
image.sprite = sprites[Random.Range(0, sprites.Length)] ;
}

然后,在检查器中,将包含图像组件的游戏对象拖放到image字段中,并将所需的所有精灵放入sprites字段中。


要获取精灵的名称,您可以执行以下操作:

var names : String[] = new String[sprites.Length] ;
for (var i = 0 ; i < names.Length ; ++i ) {
names[i] = sprites[i].name;
}

最新更新