Установка размера UIpanel из скрипта
Я пытаюсь воссоздать свою игру, используя плагин NGUI для Unity, и мне это пока очень нравится, но я в тумане от этого.
У меня есть UIPanel под названием games, и я хочу программно изменить его размер, но не знаю, как получить параметры...
Я пытался так, но без удачи:
GameObject.Find("Games").UIPanel.size.x = 300;
Тоже попробовал, но без везения
GameObject.Find("Games").GetComponent("UIPanel").clipping.size.x = 300;
Это не работает, и я не знаю, как это сделать... Любая помощь приветствуется:-)
3 ответа
Попробуйте установить свойство clipRange.
GameObject.Find("Games").GetComponent("UIPanel").clipRange = new Vector4(x, y, z , w);
Вы можете попробовать одну из двух вещей.
Во-первых, путем установки абсолютных значений углов UIRect (UIPanel наследует от UIRect)
mPanel.localCorners[0].Set(0.5f, 0.5f, 1f); //this is bottom_left corner
Вы также можете использовать worldCorners вместо localCorners. Другой вариант - настроить значения привязки, если ваша панель привязана.
mPanel.leftAnchor.absolute = 200;
Настройка baseClipRange
вручную не рекомендуется (из-за документации), но вы можете произвести полное обновление клипа с помощью invoke clipOffset
сеттер (это делает необходимые внутренние органы).
Я сделал то же самое, когда я хотел обрезать UIPanel
с движущимся UIWidget
,
// Set clipping region to some widget dimension.
panel.baseClipRegion = new Vector4(
clippingWidget.cachedTransform.localPosition.x,
clippingWidget.cachedTransform.localPosition.y,
clippingWidget.width,
clippingWidget.height
);
// Invoke culling.
panel.clipOffset += Vector2.one;
panel.clipOffset -= Vector2.one;