Показать сообщение отдельно
Старый 25.12.2014, 21:45   #1
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Копилка хелперов к новому UI

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<UIVertexvertexList) {
        if (!
IsActive()) {
            return;
        }
 
        
int count vertexList.Count;
        
float bottomY vertexList[0].position.y;
        
float topY vertexList[0].position.y;
 
        for (
int i 1counti++) {
            
float y vertexList[i].position.y;
            if (
topY) {
                
topY y;
            }
            else if (
bottomY) {
                
bottomY y;
            }
        }
 
        
float uiElementHeight topY bottomY;
 
        for (
int i 0counti++) {
            
UIVertex uiVertex vertexList[i];
            
uiVertex.color Color32.Lerp(bottomColortopColor, (uiVertex.position.bottomY) / uiElementHeight);
            
vertexList[i] = uiVertex;
        }
    }

__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1

Последний раз редактировалось ANIK123, 26.12.2014 в 11:37.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо ANIK123 за это полезное сообщение:
Dr.Evil (20.01.2015), Izunad (12.06.2015), pax (25.12.2014)