Показать сообщение отдельно
Старый 07.01.2013, 03:19   #943
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Нарисовать прямоугольник можно так
	private static void FillRect(Rect rect, Color color) {
		if(Event.current.type != EventType.Repaint) return;
		
		Vector3 a = new Vector3(rect.xMin, rect.yMin, 0);
		Vector3 b = new Vector3(rect.xMax, rect.yMin, 0);
		Vector3 c = new Vector3(rect.xMax, rect.yMax, 0);
		Vector3 d = new Vector3(rect.xMin, rect.yMax, 0);
		Vector3[] verts = new Vector3[] {
			a, b, c, d
		};
		
		Handles.DrawSolidRectangleWithOutline( verts, color, new Color(0,0,0,0));
	}
Хотя этот способ почему-то сейчас впервые странно себя повел. Задаю белый цвет, а он зеленым рисует. Остальные цвета вообще черным рисует.

Написал такую фигню
			if( GUILayout.Button(name, GUI.skin.label, GUILayout.ExpandWidth(true)) ) {
				if(selected != i) GUIUtility.keyboardControl = 0;
				selected = i;
			}
			if(i == selected) {
				Rect rect = GUILayoutUtility.GetLastRect();
				FillRect(rect, Color.white);
			}
Но прямоугольник рисуется после текста и закрашивает его(

Если все же свой стиль создавать для этого, то есть пару вопросов.
Нужно новый GUISkin создавать? В новом скине можно будет изменить только дефолтные стили(label, box, button и др) или можно свои добавить? Как потом в Editor этот скин загрузить?
(Offline)
 
Ответить с цитированием