Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Unity. использовать спрайты через код, но группа спрайтов в Texture2D

  1. Создал все кнопки в фотошопе, на одном листе в png.

  2. загрузил в unity это фото

  3. В настройках картинки выбрал multiply

  4. нажал sprite Edit и все спрайты нарезал.

  5. Перетаскиваю спрайт на кнопку все работает


Вопрос: как обратиться и применить этот спрайт через код?

По дате
По рейтингу
Аватар пользователя
Профи

Примерно:

1234567891011121314151617181920212223242526272829303132333435363738394041424344
 using UnityEngine; 
using UnityEngine.UI; 
 
public class SpriteChanger : MonoBehaviour 
{ 
    // Ссылка на Texture2D, содержащий спрайты 
    public Texture2D spriteSheet; 
 
    // Ссылка на кнопку, на которую нужно установить спрайт 
    public Button targetButton; 
 
    // Название спрайта, который нужно использовать 
    public string spriteName = "ButtonSprite"; 
 
    public void Start() 
    { 
        // Получаем спрайт по имени из Texture2D 
        Sprite buttonSprite = Sprite.Create(spriteSheet, GetSpriteRect(spriteName), new Vector2(0.5f, 0.5f)); 
 
        // Устанавливаем спрайт для кнопки 
        targetButton.image.sprite = buttonSprite; 
    } 
 
    // Метод для получения Rect спрайта по имени 
    private Rect GetSpriteRect(string name) 
    { 
        // Получаем метаданные спрайтов из Texture2D 
        string spritesJson = spriteSheet.text; 
        SpriteMetaData[] spritesData = SpriteMetaData.Parse(spritesJson); 
 
        // Находим нужный спрайт по имени 
        foreach (SpriteMetaData spriteData in spritesData) 
        { 
            if (spriteData.name == name) 
            { 
                return spriteData.rect; 
            } 
        } 
 
        // Если спрайт не найден, возвращаем пустой Rect 
        return new Rect(); 
    } 
} 
 
Аватар пользователя
Ученик

Работает - не трогай