Exemplo n.º 1
0
        public static Vector2 GetSize(string title, ColorLegendEntry[] entries)
        {
            Vector2 titleSize  = titleStyle.CalcSize(new GUIContent(title));
            var     entrySizes = entries.Select(x => entryLabelStyle.CalcSize(new GUIContent(x.text)));
            float   maxWidth   = Mathf.Max(titleSize.x, entrySizes.Max(s => s.x) + ColorRectWidget.GetSize().x);
            float   height     = titleSize.y + entrySizes.Sum(s => s.y);

            return(new Vector2(maxWidth, height));
        }
Exemplo n.º 2
0
        public static void Draw(Rect rect, string title, ColorLegendEntry[] entries)
        {
            var     titleContent = new GUIContent(title);
            Vector2 titleSize    = titleStyle.CalcSize(titleContent);
            var     titleRect    = new Rect(rect.x, rect.y, titleSize.x, titleSize.y);

            GUI.Label(titleRect, titleContent, titleStyle);

            var colorRectSize = ColorRectWidget.GetSize();

            for (int i = 0; i < entries.Length; i++)
            {
                var colorRectOrigin = new Vector2(rect.x, rect.y + titleSize.y + colorRectSize.y * i);
                var colorRect       = new Rect(colorRectOrigin.x, colorRectOrigin.y, colorRectSize.x, colorRectSize.y);
                ColorRectWidget.Draw(colorRect, entries[i].color);

                var labelOrigin  = new Vector2(rect.x + colorRectSize.x, rect.y + titleSize.y + colorRectSize.y * i);
                var labelContent = new GUIContent(entries[i].text);
                var labelSize    = entryLabelStyle.CalcSize(labelContent);
                var labelRect    = new Rect(labelOrigin.x, labelOrigin.y, labelSize.x, labelSize.y);
                GUI.Label(labelRect, labelContent, entryLabelStyle);
            }
        }