1. Помогает настраивать кнопку
Примитивный скрипт, который вешается на кнопку, имеет текстовое поле ввода, изменяя которое вы переименовываете текст кнопки и имя её геймобджекта прямо в эдиторе
Можно легко подстроить под свои нужды, например добавить линк на картинку, и еще всякое что будет душе угодно
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. Градиент для текста
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;
}
}
}