Установка размера UIpanel из скрипта

Я пытаюсь воссоздать свою игру, используя плагин NGUI для Unity, и пока он мне очень нравится, но я в тумане.

У меня есть UIPanel под названием games, и я хочу программно изменить его размер, но не знаю, как попасть в параметры...

Я пробовал так, но безуспешно:

GameObject.Find("Games").UIPanel.size.x = 300;

Также пробовал это, но безуспешно:

GameObject.Find("Games").GetComponent("UIPanel").clipping.size.x = 300;

Это не работает, и я не знаю, как это сделать... Любая помощь приветствуется :-)


person Mansa    schedule 04.02.2014    source источник


Ответы (3)


Попробуйте установить свойство clipRange.

GameObject.Find("Games").GetComponent("UIPanel").clipRange = new Vector4(x, y, z , w); 
person PeakCoder    schedule 15.02.2014

Вы можете попробовать одно из двух.

Во-первых, установив абсолютные значения углов UIRect (UIPanel наследуется от UIRect)

mPanel.localCorners[0].Set(0.5f, 0.5f, 1f); //this is bottom_left corner

Вы также можете использовать worldCorners вместо localCorners. Другой вариант — отрегулировать значения привязки, если панель привязана.

mPanel.leftAnchor.absolute = 200;
person Dover8    schedule 26.08.2014

Установка baseClipRange вручную не рекомендуется (из-за документации), но вы можете произвести полное обновление клипа, вызвав clipOffset setter (он выполняет необходимые внутренние действия).

Я сделал то же самое, когда хотел обрезать 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;
person Geri Borbás    schedule 19.08.2015