このコード行を使用して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 `の値型の戻り値を変更することはできません。色'。値を一時変数に保存することを検討してください。
ボタンと色の両方を呼び出す前に変数として保存しようとしましたが、エラーコードは変更されませんでした。
EDIT:
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>();
}
}
}
Iエラー資産/ _Scripts/OptionSwitch.cs(10,28)を取得してい:エラーCS1519:予期しない記号 '=」クラス、構造体、またはインターフェイスメンバー宣言及び資産に/ _Scripts/OptionSwitch.cs( 10,43):エラーCS1519:クラス、構造体、またはインターフェイスメンバ宣言で予期しないシンボル '0 'が発生しました – Jdoonan
どのコード行ですか?私が上に投稿したコードは、私の側では完全に正常に動作しています。あなたは何か間違っている。私はあなたがこの権利を持っていることを確認するために新しいスクリプトを作成することをお勧めします。可能であれば、回答を直接コピーしてください。 – Programmer
私はそれを10行目に直接コピーしましたが、カラーブロックを定義するために使用している非標準の名前空間はありますか? – Jdoonan