이 코드 줄을 사용하여 UI 단추의 색을 변경하려고합니다.스크립트를 통해 UI 단추의 색을 변경하십시오.
prev.GetComponent<Button>().colors.normalColor = new Color(0.0f, 0.0f, 0.0f, 1.0f);
하지만 난이 오류가 발생 해요/_Scripts/OptionSwitch.cs
자산 (28,53) : 오류 CS1612 : UnityEngine.UI.Selectable`의 값 형식의 반환 값을 수정할 수 없습니다 .그림 물감'. 값을 임시 변수에 저장하는 것을 고려하십시오.
단추와 색을 호출하기 전에 변수로 저장하려고했으나 오류 코드는 변경되지 않았습니다.
편집 :
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 = AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/UISprite.psd");
prev.GetComponent<Button>().colors = buttonColors;
// Define Previous Button Image
GameObject previm = new GameObject("Previous Image", typeof(RawImage));
previm.layer = 5;
previm.transform.parent = prev.transform;
} else {
// Create Canvas
GameObject canvas = new GameObject("Canvas", typeof(Canvas));
canvas.AddComponent<CanvasScaler>();
canvas.AddComponent<GraphicRaycaster>();
canvas.layer = 5;
canvas.GetComponent<Canvas>().renderMode = RenderMode.ScreenSpaceOverlay;
canvas.transform.localPosition = Vector3.zero;
// Create Event System
GameObject eventsystem = new GameObject("EventSystem", typeof(EventSystem));
eventsystem.AddComponent<StandaloneInputModule>();
eventsystem.AddComponent<TouchInputModule>();
}
}
}
나는 오류 자산/_Scripts/OptionSwitch.cs (10,28) 받고 있어요 : 오류 CS1519 : 예기치 않은 기호 '='클래스, 구조체 또는 인터페이스 멤버 선언 및 자산/_Scripts/OptionSwitch.cs을 (10,43) : 오류 CS1519 : 클래스, 구조체 또는 인터페이스 멤버 선언에서 예기치 않은 기호 '0'이 – Jdoonan
코드 줄? 위에서 게시 한 코드는 내 측면에서 완벽하게 작동합니다. 너는 뭔가 잘못하고있다. 나는 당신이이 권리를 가지고 있는지 확인하기 위해 새 스크립트를 만드는 것이 좋습니다. 가능한 경우 코드를 직접 응답에서 복사하십시오. – Programmer
나는 그것을 10 행에 직접 복사했는데, 당신이 컬러 블록을 정의하는데 사용하는 비표준 네임 스페이스가 있는가? – Jdoonan