如何在运行时将UI Image元素的sprite更改为Assets文件夹中的sprite?

时间:2017-01-21 04:10:45

标签: c# unity3d sprite

我想要一个UI Image组件来更改单击时显示的精灵。

例如,显示的精灵首先是一个红色框,点击后,我想将其更改为绿色框。

我如何在OnMouseDown()事件中执行此操作?

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class bbox1 : MonoBehaviour {

    public static int x=1;
    Image image;
    // Use this for initialization
    void Start () {

        image = GameObject.Find ("box1").GetComponent<Image> ();

    }

    // Update is called once per frame
    void Update () {

    }

    void OnMouseDown()
    {
        if (x == 1) {
            x=2;
            image.sprite = greenbox;
        }
    }
}

目前在我的脚本中,我不知道如何获得对替换精灵(greenbox)的引用,因此我可以在image.sprite上设置它。精灵在我的Assets文件夹中 - 如何加载它?

1 个答案:

答案 0 :(得分:1)

听起来你需要的是Resources.Load()方法,以便加载你希望Image显示的新精灵。这里有一个关于如何在代码中使用它的想法(让我们说你的精灵资产的路径是&#34; Sprites / GreenBox&#34;):

void OnMouseDown()
{
    if (x == 1) {
        x=2;
        image.sprite = Resources.Load("Sprites/GreenBox") as Sprite;
    }
}

希望这有帮助!如果您有任何问题,请告诉我。