Как в изменить width visualElement в процентах?
Есть категория с картами, которую по нажатия на кнопку мы должны либо развернуть, либо, наоборот, уменьшить до начальных размеров. Я нашел способ, как это сделать, но, как я понимаю, это далеко не в процентах.
VisualElement cat1;
Button okButton;
void Start()
{
var uiDocument = GetComponent<UIDocument>();
okButton = uiDocument.rootVisualElement.Q<Button>("Up1");
cat1 = uiDocument.rootVisualElement.Q<VisualElement>("Category1");
okButton.clicked += ClickMessage;
}
void ClickMessage()
{
Debug.Log("hello");
cat1.style.width = 100;
}
Ответы (1 шт):
В UXML файле пишется просто width = 10%.
visual.style.width можно присвоить цифровое значение, но как и другие размерности стиля, это не float, а StyleLength. Для получения значения прийдется писать так:
float width = visual.style.width.value;
Кроме value, у StyleLength есть keyword(StyleKeyword). Можем увидеть знакомые по интерфейсу билдера Auto и Initial, а так-же None, Null и Undefined.
Если попробывать посмотреть какое значение стоит у элемента, указанного в редакторе с процентами:
Debug.Log(visual.style.width.value + " " + visual.style.width.keyword);
Результат все время будет один и тот-же с вообще всеми размерностями, для всех элементов документа в принцепе: 0 Null.
Проще говоря никак.
UI Toolkit в целом сырая вещь, я попробывал написать горизонтальный список с выбором элемента на подобии ListView и столкнулся с рядом стен делающих это не возможным, как например не возможность установить псевдофазу элемента на checked(как и любую другую), как это сделано у самого ListView или Toggle.
У него классаная концепция, объединяющая UI игры и редактора, дающая новые возможности по псевдостилям, отсутствующие в классической uGUI, но как мина, способная взорваться "ХЕР ТЕБЕ" в любой момент.