如何在单击Unity上更改按钮图像

问题描述 投票:1回答:2

我得到游戏的解锁按钮,它有效,但我想用户自己可以按下按钮,然后按钮图像更改。正如您在下面的代码中看到得分> = 10时,按钮图像会立即更改。我怎样才能做到这一点?

public GameObject lockBtn;
Image lockComp;
public Sprite myLockImage;
public Sprite myLockSecondImage;
/////////////////////////////////////////

 lockComp = lockBtn.GetComponent<Image> ();

        if (bestScore >= 10) {
            lockComp.sprite = myLockImage;
        }
        else
        {
            lockComp.sprite = myLockSecondImage;
        }
image button unity3d uibutton
2个回答
2
投票

将代码放在名为ButtonScript的文件和类中,并放在名为OnButtonClick()的方法中

public class ButtonScript : MonoBehaviour {

    public void OnButtonClick(){
        lockComp = lockBtn.GetComponent<Image> ();
        if (bestScore >= 10) {
            lockComp.sprite = myLockImage;
        }
        else
        {
            lockComp.sprite = myLockSecondImage;
        }
    }
}

然后在Button上添加此脚本,并在OnClick事件中添加对Button及其方法的引用:

OnClick event


1
投票

只需在按钮中添加一个事件监听器即可更改图像。

    lockComp.sprite = myLockSecondImage;
    if (bestScore >= 10) {
        lockBtn.GetComponent<Button>().onClick.addEventListener( OnLockButtonClicked ) ; 
    }

    // ...
    private void OnLockButtonClicked()
    {
         lockComp.sprite = myLockImage ;
    }

请注意不要将此代码段添加到Update函数中。否则,您将每帧添加一个新的事件侦听器


将按钮的“解锁状态”保存到文件中以便在用户再次启动游戏时不显示解锁的精灵可能是个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.