Установка размера 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;
Другие вопросы по тегам