Изменение размеров UnityEngine.UI.Image

Графический интерфейс пользователя

Изменение размеров UnityEngine.UI.Image

Сообщение prosperitas 15 фев 2015, 18:25

Я объявляю переменную
public UnityEngine.UI.Image Img;

В редакторе перетягиваю в это поле вручную созданный Image.
Теперь мне надо программно изменить положение и размер этого Image. Уже всю голову сломал как это сделать. В документации ничего не нашёл. Казалось бы логичным было бы что-то вроде
Img.rectTransform.rect.left = x;
Но rectTransform - read only. Подскажите, как изменить его положение и размер.

Ещё один вопрос, более глобальный. Мне надо вывести некоторый текст, я использую UnityEngine.UI.Text - с этим проблем нет. Но текст меняется, меняется количество строк и надо, чтобы сзади текста была сделана подложка в виде картинки, чтобы текст не выводился прямо над сценой. Именно поэтому я и хочу использовать Image, чтобы он появлялся за текстом (поэтому, мне и нужно динамически менять его координаты и размер). Но может быть есть какой-то более простой способ. Может быть я пытаюсь чесать левое ухо правой рукой через затылок?

Спасибо за помощь.
prosperitas
UNец
 
Сообщения: 10
Зарегистрирован: 15 янв 2013, 09:46

Re: Изменение размеров UnityEngine.UI.Image

Сообщение Neyl 15 фев 2015, 21:43

Для изменения размеров/положения удобней использовать RectTransform.SetInsetAndSizeFromParentEdge и RectTransform.SetSizeWithCurrentAnchors.

По второму вопросу. Создаете Image, добавляете компоненты Vertical (или Horizontal) Layout Group и Content Size Fitter (в нем выставляете Vertical Fit и/или Horizontal Fit в Preffered Size). Дочерним объектом делаете Text. Размеры картинки будут меняться в зависимости от размеров текста.
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Изменение размеров UnityEngine.UI.Image

Сообщение prosperitas 15 фев 2015, 22:09

Ура! Ура! Ура! Отличное решение! Спасибо огромное !
prosperitas
UNец
 
Сообщения: 10
Зарегистрирован: 15 янв 2013, 09:46

Re: Изменение размеров UnityEngine.UI.Image

Сообщение PREZRAK 17 фев 2015, 15:16

Этот грёбанный UI...
Что есть edge?
участник клуба GCC
Аватара пользователя
PREZRAK
Старожил
 
Сообщения: 653
Зарегистрирован: 30 май 2013, 12:41
  • Сайт

Re: Изменение размеров UnityEngine.UI.Image

Сообщение Neyl 17 фев 2015, 16:05

Сторона родителя
Синтаксис:
Используется csharp
public enum Edge
{
    Left,
    Right,
    Top,
    Bottom
}

 
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Изменение размеров UnityEngine.UI.Image

Сообщение PREZRAK 17 фев 2015, 16:12

Argument `#1' cannot convert `UIName.Edge' expression to type `UnityEngine.RectTransform.Edge'
Можно полный пример?
участник клуба GCC
Аватара пользователя
PREZRAK
Старожил
 
Сообщения: 653
Зарегистрирован: 30 май 2013, 12:41
  • Сайт

Re: Изменение размеров UnityEngine.UI.Image

Сообщение Neyl 17 фев 2015, 16:55

Синтаксис:
Используется csharp
leftRectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, -10f, 10f);
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Изменение размеров UnityEngine.UI.Image

Сообщение PREZRAK 17 фев 2015, 17:42

Спасибо, понял.
участник клуба GCC
Аватара пользователя
PREZRAK
Старожил
 
Сообщения: 653
Зарегистрирован: 30 май 2013, 12:41
  • Сайт


Вернуться в uGUI

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4