Примерно:
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();
}
}
Вопрос: как обратиться и применить этот спрайт через код?