我正在尝试使用这行代码更改 UI 按钮上的颜色。
prev.GetComponent<Button>().colors.normalColor = new Color(0.0f, 0.0f, 0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误
Assets/_Scripts/OptionSwitch.cs(28,53):错误CS1612:无法修改“UnityEngine.UI.Selectable.colors”的值类型返回值。考虑将值存储在临时变量中
我尝试在调用按钮和颜色之前将它们存储为变量,但它不会更改错误代码。
编辑:
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.Sprites;
public class OptionSwitch : MonoBehaviour {
ColorBlock colorBlock = new ColorBlock();
colorBlock.normalColor = new Color(0.0f, 0.0f, 0.0f, 1.0f);
[MenuItem ("GameObject/UI/Switch")]
static void Switch(){
if (GameObject.FindObjectOfType (typeof(Canvas)) != null) {
Canvas canvas = (Canvas)GameObject.FindObjectOfType (typeof(Canvas));
// Define Previous Button
GameObject prev = new GameObject ("Previous", typeof(Button));
prev.layer = 5;
prev.AddComponent<Image> ();
prev.transform.parent = canvas.transform;
prev.GetComponent<Image> ().sprite …Run Code Online (Sandbox Code Playgroud)