Unity:(js)将assets文件夹中的PNG加载到UI Image

时间:2017-07-13 07:39:34

标签: unity3d unityscript

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

1 个答案:

答案 0 :(得分:2)

创建名为Resources的文件夹和名为Sprites的子文件夹。将精灵放在此文件夹中(图像必须在图像导入设置中具有Sprite纹理类型,如@SurajS所指出的那样。

创建一个图像元素并将以下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)] ;
}

然后,在检查员中,拖动&amp;删除将图像组件保存在image字段中的游戏对象,并将所需的所有精灵放在sprites字段中。

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

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