通过脚本更改UI按钮的颜色我正在尝试使用这行代码更改UI按钮的颜色。prev.GetComponent().colors.normalColor=newColor(0.0f,0.0f,0.0f,1.0f);但我得到这个错误Assets/_Scripts/OptionSwitch.cs(28,53):errorCS1612:CannotmodifyThevaluetypereturnvalueof`UnityEngine.UI.Selectable.colors'。考虑将值存储在一个临时变量中我尝试在调用它们之前将按钮和颜色存储为变量,但它不会更改错误代码。编辑:使用UnityEditor;使用统一引擎;使用UnityEngine.UI;使用UnityEngine.EventSystems;使用UnityEngine.Sprites;公共类OptionSwitch:MonoBehaviour{ColorBlockcolorBlock=newColorBlock();colorBlock.normalColor=newColor(0.0f,0.0f,0.0f,1.0f);[MenuItem("GameObject/UI/Switch")]staticvoidSwitch(){if(GameObject.FindObjectOfType(typeof(Canvas))!=null){Canvascanvas=(Canvas)GameObject.FindObjectOfType(typeof(Canvas));//定义上一个按钮游戏对象prev=newGameObject("Previous",typeof(Button));prev.layer=5;prev.AddComponent();prev.transform.parent=canvas.transform;prev.GetComponent().sprite=AssetDatabase.GetBuiltinExtraResource("UI/Skin/UISprite.psd");prev.GetComponent().colors=buttonColors;//定义上一个按钮图像游戏对象previm=newGameObject("PreviousImage",typeof(RawImage));previm.layer=5;previm.transform.parent=prev.transform;}else{//创建画布游戏eObjectcanvas=newGameObject("Canvas",typeof(Canvas));canvas.AddComponent();canvas.AddComponent();canvas.layer=5;canvas.GetComponent().renderMode=RenderMode.ScreenSpaceOverlay;画布.变换。localPosition=Vector3.zero;//创建事件系统GameObjecteventsystem=newGameObject("EventSystem",typeof(EventSystem));事件系统.AddComponent();事件系统.AddComponent();}}}你必须改变颜色而不是normalColorGetComponent().colors返回一个ColorBlock。因此,创建一个新的ColorBlock实例。从该ColorBlock修改normalColor,然后将该ColorBlock分配给GetComponent().colors。完整示例:ColorBlockcolorBlock=newColorBlock();colorBlock.normalColor=newColor(0.0f,0.0f,0.0f,1.0f);prev.GetComponent().colors=colorBlock;这将覆盖您的其他颜色设置。要保留它们,请从prev.GetComponent().colors;创建一个ColorBlock;prev.GetComponent().colors;ColorBlockcolorBlock=prev.GetComponent().colors;colorBlock.normalColor=newColor(0.0f,0.0f,0.0f,1.0f);prev.GetComponent().colors=colorBlock;您还可以修改以下颜色属性:colorBlock.pressedColor=newColor(1f,0.0f,0.0f,1.0f);colorBlock.highlightedColor=newColor(0f,1f,0.0f,1.0f);colorBlock.disabledColor=newColor(0f,0f,1,1.0f);我不知道所有的.GetComponents是什么,但还有另一种方法!当您有多个按钮并且只想更改颜色或使它们消失时,此方法适用。以上就是C#学习教程:通过脚本改变UI按钮的颜色分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——Color.red,Color.grey,...for(inti=0;i本文收集自互联网,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
