我想在單擊按鈕時更改面板顏色,我嘗試使用代碼更改按鈕顏色而不是面板顏色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 關注
- 442 瀏覽
添加回答
舉報
0/150
提交
取消