


Программирование
+2Unity. использовать спрайты через код, но группа спрайтов в Texture2D
Создал все кнопки в фотошопе, на одном листе в png.
загрузил в unity это фото
В настройках картинки выбрал multiply
нажал sprite Edit и все спрайты нарезал.
Перетаскиваю спрайт на кнопку все работает
Вопрос: как обратиться и применить этот спрайт через код?
По дате
По рейтингу
Примерно:
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();
}
}
Работает - не трогай