如何在代码中替换面板上的背景图像? C#

时间:2016-01-21 16:51:03

标签: c# image unity3d background panel

在我在Unity3d中构建的应用程序中,我希望能够让用户为主面板选择背景图像。目前,我在调试变量时得到null。如果有人能指出我正确的方向。

public Image Background;
public Sprite theImage;


// Use this for initialization
void Start () 
{
    theImage = Resources.Load<Sprite>("Sprites/sf1");
    Debug.Log(theImage);
    Background.GetComponent<Image>().sprite=theImage;
    Debug.Log(theImage);

谢谢!

1 个答案:

答案 0 :(得分:1)

要记住的一件事是没有面板这样的东西。 “但我刚创造了一个”我听到你说。当然,Unity会让你觉得你做到了。但是如果你看一下它创建的游戏对象,你会发现它只不过是一个带有RectTransform组件和Image组件的GameObject。

因此,如果您要将自己的组件添加到此面板中,那么您需要做的就是

Image image = GetComponent<Image>();
image.sprite = mySprite;

因此,如果不是未分配的Background图片,那么您的代码几乎就在那里。