统一如何在单击按钮时更改面板颜色
unity how to changing panel color when click button
我想在单击按钮时更改面板颜色,我尝试使用
对其更改按钮颜色进行编码而不是面板颜色
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);
}
}
我需要做什么?
你没有任何按钮,但你已经做到了,面板的颜色会在每一帧都改变,而不是每次点击。
您必须创建一个按钮,将其作为参数输入代码,然后使用 OnClick 事件。
更多信息请点击此处:https://docs.unity3d.com/ScriptReference/UI.Button-onClick.html
啊,搞什么鬼,我会解释为什么它不起作用以及你应该做什么。
(我假设您按照我在评论中的建议更改了更新方法)
首先你应该检查你的脚本在编辑器中附加到什么游戏对象。我假设它附在按钮上。那么 Start 方法中发生了什么?正确 — 您正在将 Button 的 Image
组件分配给 panel
变量。因此,当调用 panel.color = GetRandomColor();
时,它会更改按钮的 Image
组件的颜色。
对此你能做些什么?简单的方法是完全删除 Start
方法,因为 panel
变量被声明为 public
将其分配给编辑器中的面板游戏对象。
我想在单击按钮时更改面板颜色,我尝试使用 对其更改按钮颜色进行编码而不是面板颜色
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);
}
}
我需要做什么?
你没有任何按钮,但你已经做到了,面板的颜色会在每一帧都改变,而不是每次点击。 您必须创建一个按钮,将其作为参数输入代码,然后使用 OnClick 事件。 更多信息请点击此处:https://docs.unity3d.com/ScriptReference/UI.Button-onClick.html
啊,搞什么鬼,我会解释为什么它不起作用以及你应该做什么。
(我假设您按照我在评论中的建议更改了更新方法)
首先你应该检查你的脚本在编辑器中附加到什么游戏对象。我假设它附在按钮上。那么 Start 方法中发生了什么?正确 — 您正在将 Button 的 Image
组件分配给 panel
变量。因此,当调用 panel.color = GetRandomColor();
时,它会更改按钮的 Image
组件的颜色。
对此你能做些什么?简单的方法是完全删除 Start
方法,因为 panel
变量被声明为 public
将其分配给编辑器中的面板游戏对象。