我想在单击按钮时更改面板颜色,我尝试使用代码更改按钮颜色而不是面板颜色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 方法中发生了什么?对 - 您正在将Image
Button 的组件分配给panel
变量。所以当panel.color = GetRandomColor();
被调用时,它会改变Image
按钮组件的颜色。
你能做些什么呢?简单的方法是Start
完全删除方法,因为panel
变量被声明为public
将它分配给编辑器中的面板游戏对象。
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
你没有任何按钮,你已经做了它,所以面板的颜色会改变每一帧,而不是每次点击。您必须创建一个按钮,将其作为参数输入到代码中,然后使用 OnClick 事件。更多关于这里:https : //docs.unity3d.com/ScriptReference/UI.Button-onClick.html
- 2 回答
- 0 关注
- 406 浏览
添加回答
举报
0/150
提交
取消