Войти
ПрограммированиеФорумОбщее

[Unity] GUILayout.Window не участвует в авторасположении? [Решено]

#0
22:36, 11 фев. 2020
GUILayout.BeginVertical();

GUILayout.Button("Button_1");
rectWindow = GUILayout.Window(0, rectWindow, OnWindowUpdate, "Window");
GUILayout.Button("Button_2");

GUILayout.EndVertical();

Почему-то окно не располагается между двумя кнопками. Код пишу для окна Scene.


#1
(Правка: 1:26) 1:17, 12 фев. 2020

smartxp
> Почему-то окно не располагается между двумя кнопками.
Не уверен что оно должно растягиваться, но попробуй GUILayout.ExpandWidth, GUILayout.ExpandHeight.

Скорее всего между кнопками нужно использовать BeginArea, BeginHorizontal, BeginVertical или Space.

Окно само по себе в Layout конструкцию не вписывается, а рисуется поверх. Уже внутри него все остальные элементы. OnWindowUpdate как раз должно эти элементы отрисовывать. rectWindow меняется если его ручками меняешь или его распирает внутренними элементами.

#2
19:47, 12 фев. 2020

Можно спросить - а принципиально такую старую систему Гуи использовать?

#3
19:49, 12 фев. 2020

seaman
> Можно спросить - а принципиально такую старую систему Гуи использовать?
А для редактора можно другую использовать?

#4
22:37, 12 фев. 2020

smartxp
> А для редактора можно другую использовать?

Можно, но она сложнее: https://docs.unity3d.com/Manual/UIElements.html

#5
22:51, 12 фев. 2020

foxes
> Не уверен что оно должно растягиваться, но попробуй GUILayout.ExpandWidth,
> GUILayout.ExpandHeight.
Нет не помогло.

Остается либо
foxes
> Скорее всего между кнопками нужно использовать BeginArea, BeginHorizontal,
> BeginVertical или Space.
либо попробовать сделать свой Window, например из GUILayout.Box.

Я же решил сделать DragWindow)

alexzzzz
> Можно, но она сложнее: https://docs.unity3d.com/Manual/UIElements.html
Спасибо за ссылку, но пока не буду с этим заморачиваться.

ПрограммированиеФорумОбщее