[英]How can I return a color in a get method using a bool?
主要目標是能夠使用自定義或默認顏色。
using UnityEditor;
using UnityEngine;
using UnityEngine.Rendering;
// Implementation from UnityEditor.Graphs.GraphGUI
public static class GraphBackground
{
public static Color CustomkGridMinorColorDark;
public static Color CustomkGridMajorColorDark;
public static Color CustomkGridMinorColorLight;
public static Color CustomkGridMajorColorLight;
public static bool defaultColors = true;
private static readonly Color kGridMinorColorDark = new Color(0f, 0f, 0f, 0.18f);
private static readonly Color kGridMajorColorDark = new Color(0f, 0f, 0f, 0.28f);
private static readonly Color kGridMinorColorLight = new Color(0f, 0f, 0f, 0.1f);
private static readonly Color kGridMajorColorLight = new Color(0f, 0f, 0f, 0.15f);
private static Color gridMinorColor
{
get
{
if (EditorGUIUtility.isProSkin)
return kGridMinorColorDark;
else
return kGridMinorColorLight;
}
}
private static Color gridMajorColor
{
get
{
if (EditorGUIUtility.isProSkin)
return kGridMajorColorDark;
else
return kGridMajorColorLight;
}
}
我想使用標志defaultColors來決定是使用默認顏色還是自定義顏色。
問題是,如果我在做:
private static Color gridMinorColor
{
get
{
if (defaultColors == true)
{
if (EditorGUIUtility.isProSkin)
return kGridMinorColorDark;
else
return kGridMinorColorLight;
}
}
}
我現在遇到錯誤,因為它現在不返回任何內容。
好吧,不是所有的gridMinorColor
案例gridMinorColor
返回有效值。 在您的情況下,您還可以使用條件運算符?
使您的代碼更易於閱讀/編寫
private static Color gridMinorColor
{
get
{
if (defaultColors)
{
return EditorGUIUtility.isProSkin ? kGridMinorColorDark : kGridMinorColorLight;
}
// equals the else part
// but since you return within the if you can skip the else keyword
return EditorGUIUtility.isProSkin ? CustomkGridMinorColorDark : CustomkGridMinorColorLight;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.