首先我描绘了我的问题:
你有3个滑块,它们都需要背景颜色。也许下面的3个标签也需要背景颜色。
GUI.color = Color.white;
似乎没什么帮助。我需要这个黑色背景进行模拟,所以我需要将滑块背景设为白色......
但是GUILayout和GUISkin没有这个属性,不是吗?我在那里找不到有用的东西......
我使用的组件:
GUI.HorizontalSlider + GUI.Label
答案 0 :(得分:0)
在GUI Skin内,有一个水平滑块属性。该属性具有Normal,Hover,Active和Focused的GUI Style属性。您应该为所有这四个元素设置背景。
这是使用以编程方式创建的GUIStyle(使用Unity 5.4.2p4测试)的示例。请注意,在创建新GUIStyle时,您需要指定尺寸,否则它可能不可见。
public class MySliderIMGUI : MonoBehaviour
{
private GUIStyle _sliderBackgroundStyle;
private GUIStyle _sliderThumbStyle;
private float _sliderValue = 0f;
private Texture2D _whitePixel;
private Texture2D _blackPixel;
void Start()
{
this._whitePixel = new Texture2D(1, 1, TextureFormat.ARGB32, false);
this._whitePixel.SetPixel(0, 0, Color.white);
this._whitePixel.Apply();
this._blackPixel = new Texture2D(1, 1, TextureFormat.ARGB32, false);
this._blackPixel.SetPixel(0, 0, Color.black);
this._blackPixel.Apply();
this._sliderBackgroundStyle = new GUIStyle();
this._sliderBackgroundStyle.padding = new RectOffset(2, 2, 2, 2);
this._sliderBackgroundStyle.normal.background = this._whitePixel;
this._sliderBackgroundStyle.hover.background = this._whitePixel;
this._sliderBackgroundStyle.active.background = this._whitePixel;
this._sliderBackgroundStyle.focused.background = this._whitePixel;
this._sliderThumbStyle = new GUIStyle();
this._sliderThumbStyle.stretchHeight = true;
this._sliderThumbStyle.fixedWidth = 20f;
this._sliderThumbStyle.normal.background = this._blackPixel;
this._sliderThumbStyle.hover.background = this._blackPixel;
this._sliderThumbStyle.active.background = this._blackPixel;
this._sliderThumbStyle.focused.background = this._blackPixel;
}
void OnGUI()
{
this._sliderValue = GUI.HorizontalSlider(new Rect(100, 100, 200f, 20f), this._sliderValue, 0, 1, this._sliderBackgroundStyle, this._sliderThumbStyle);
}
}