unity 如何在单击按钮时更改面板颜色

我想在单击按钮时更改面板颜色,我尝试使用代码更改按钮颜色而不是面板颜色


public Image panel;

  // Use this for initialization

  void Start () {

      panel = GetComponent<Image>();

  }


  // Update is called once per frame

 public void OnButtonClick {



      panel.color = GetRandomColor();


  }

  Color GetRandomColor(){


      return new Color(Random.value, Random.value, Random.value);

  }


我需要做什么?


胡说叔叔
浏览 407回答 2
2回答

喵喔喔

啊,到底是什么,我会解释为什么它不起作用以及你应该做什么。(我假设您按照我在评论中的建议更改了 Update 方法)首先,您应该检查您的脚本附加在编辑器中的游戏对象。我假设它附加到按钮。那么在 Start 方法中发生了什么?对 - 您正在将ImageButton 的组件分配给panel变量。所以当panel.color = GetRandomColor();被调用时,它会改变Image按钮组件的颜色。你能做些什么呢?简单的方法是Start完全删除方法,因为panel变量被声明为public将它分配给编辑器中的面板游戏对象。

慕尼黑8549860

你没有任何按钮,你已经做了它,所以面板的颜色会改变每一帧,而不是每次点击。您必须创建一个按钮,将其作为参数输入到代码中,然后使用 OnClick 事件。更多关于这里:https&nbsp;:&nbsp;//docs.unity3d.com/ScriptReference/UI.Button-onClick.html
打开App,查看更多内容
随时随地看视频慕课网APP