我有解锁按钮用于游戏,它有效,但我想用户自己可以按下按钮,然后按钮图像更改。正如您在下面的代码中看到的,当得分> = 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;
}
答案 0 :(得分:2)
将您的代码放入名为ButtonScript
的文件和类以及名为OnButtonClick()
的方法
public class ButtonScript : MonoBehaviour {
public void OnButtonClick(){
lockComp = lockBtn.GetComponent<Image> ();
if (bestScore >= 10) {
lockComp.sprite = myLockImage;
}
else
{
lockComp.sprite = myLockSecondImage;
}
}
}
然后在按钮上添加此脚本,并在 OnClick 事件中添加对按钮及其方法的引用:
答案 1 :(得分:1)
只需在按钮上添加一个事件监听器即可更改图像。
lockComp.sprite = myLockSecondImage;
if (bestScore >= 10) {
lockBtn.GetComponent<Button>().onClick.addEventListener( OnLockButtonClicked ) ;
}
// ...
private void OnLockButtonClicked()
{
lockComp.sprite = myLockImage ;
}
小心,不要将此代码段添加到Update函数中。否则,您将添加一个新的事件监听器每一帧
将按钮的“解锁状态”保存到文件中,以便在用户再次启动游戏时不显示未锁定的精灵,这可能是一个好主意。