为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
胡说叔叔 2021-11-28 19:58:43
我想在单击按钮时更改面板颜色,我尝试使用代码更改按钮颜色而不是面板颜色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);  }} 我需要做什么?
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

啊,到底是什么,我会解释为什么它不起作用以及你应该做什么。

(我假设您按照我在评论中的建议更改了 Update 方法)

首先,您应该检查您的脚本附加在编辑器中的游戏对象。我假设它附加到按钮。那么在 Start 方法中发生了什么?对 - 您正在将ImageButton 的组件分配给panel变量。所以当panel.color = GetRandomColor();被调用时,它会改变Image按钮组件的颜色。

你能做些什么呢?简单的方法是Start完全删除方法,因为panel变量被声明为public将它分配给编辑器中的面板游戏对象。


查看完整回答
反对 回复 2021-11-28
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

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


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 406 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信