Копилка хелперов к новому UI
1. Помогает настраивать кнопку
Примитивный скрипт, который вешается на кнопку, имеет текстовое поле ввода, изменяя которое вы переименовываете текст кнопки и имя её геймобджекта прямо в эдиторе
Можно легко подстроить под свои нужды, например добавить линк на картинку, и еще всякое что будет душе угодно
PHP код:
using System; using UnityEngine; using UnityEngine.UI; using System.Collections;
[AddComponentMenu("UI/Custom/ButtonLinker ")] public class ButtonLinker : MonoBehaviour { public string text; [Serializable] public class Links { public Text text; } public Links links; public void Awake(){ AppyData(); } public void OnValidate(){ AppyData(); } public void AppyData(){ string tmp_str = ""; if (links.text != null){ if (text == ""){tmp_str = "????????";} else {tmp_str = text;} links.text.text = tmp_str; gameObject.name = tmp_str; } else { Debug.LogWarning("Text link is not assigned"); } } }
2. Градиент для текста :)
PHP код:
using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; [AddComponentMenu("UI/Effects/Gradient")] public class Gradient : BaseVertexEffect { [SerializeField] private Color32 topColor = Color.white; [SerializeField] private Color32 bottomColor = Color.black; public override void ModifyVertices(List<UIVertex> vertexList) { if (!IsActive()) { return; } int count = vertexList.Count; float bottomY = vertexList[0].position.y; float topY = vertexList[0].position.y; for (int i = 1; i < count; i++) { float y = vertexList[i].position.y; if (y > topY) { topY = y; } else if (y < bottomY) { bottomY = y; } } float uiElementHeight = topY - bottomY; for (int i = 0; i < count; i++) { UIVertex uiVertex = vertexList[i]; uiVertex.color = Color32.Lerp(bottomColor, topColor, (uiVertex.position.y - bottomY) / uiElementHeight); vertexList[i] = uiVertex; } } }
|