- добавить элемент UI\Text в визуальном списке
- удалить элемент UI\Text из визуального списка со смещением оставшихся элементов.
- появление ползунка UI\Scroll при большом количестве элементов
Рубрика: Canvas
UI/Canvas
Компонент Canvas представляет собой абстрактное пространство, в котором производится настройка и отрисовка UI.
Все UI-элементы должны быть потомками игровых объектов, к которым присоединен Canvas. Когда вы создаете UI-элемент из пункта меню (GameObject > Create UI), Canvas будет добавлен автоматически, если его нет в сцене
//загрузка ui префабаvar go = PrefabUtility.LoadPrefabContents(ФайлПрефаба);
//после переноса объекта в родитель изменятся Scale
go.transform.SetParent(gameObject.transform);
//получение компонента Трансформация у элемента ui
var rt = go.GetComponent<RectTransform>();
//настройка центра элемента ui
rt.pivot = Vector2.zero;
//масштаб элемента ui
rt.localScale = Vector3.one;
//размеры ui элемента width,height,depth
rt.sizeDelta = new Vector3(60, 30, 0);
//изменить Top координаты элемента относительно родителяrt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0.5f*(gameObject.transform.childCount-2)* (rt.rect.height+10), rt.rect.height);
//изменитьRight
координаты элемента относительно родителяrt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, rt.sizeDelta.x, rt.rect.height);
//изменение центра элемента ui по оси xrt.pivot = new Vector2(2,0);
//Растянуть ui элемент относительно родителя по оси xrt.localPosition = new Vector3(0, rt.localPosition.y, 0); rt.anchorMin = new Vector2(0, 0.5f);
rt.anchorMax = new Vector2(1, 0.5f);
//После можно прилепить ui вверх относительно родителяrt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0.5f * (gameObject.transform.childCount - 2) * (rt.rect.height + 10), rt.rect.height);
//прилепить ui элемент вверх-слева относительно родителя
rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, rt.rect.height);
//изменить LEFT
rt.offsetMin = new Vector2(left, rt.offsetMin.y);
//изменить RIGHT
rt.offsetMax = new Vector2(right, rt.offsetMax.y);
//изменить TOP
rt.offsetMax = new Vector2(rt.offsetMax.x, top); //изменить BOTTOM
rt.offsetMin = new Vector2(rt.offsetMin.x, bottom);
- при наведении курсора мыши на текст на сцене — текст красный
- при выхода курсора мыши из текста на сцене — текст черный
var go=PrefabUtility.LoadPrefabContents(Application.dataPath+"/Resources/PREFABS/prefab_104515022021.prefab");
go.transform.SetParent(GameObject.Find("Canvas_world").transform);
//после переноса объекта в родитель изменятся Scalego.GetComponent<RectTransform>().localScale = Vector3.one;