Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Валек Журавлев Гуру (3312), на голосовании 5 месяцев назад
  1. Создал все кнопки в фотошопе, на одном листе в png.
  2. загрузил в unity это фото
  3. В настройках картинки выбрал multiply
  4. нажал sprite Edit и все спрайты нарезал.
  5. Перетаскиваю спрайт на кнопку все работает

Вопрос: как обратиться и применить этот спрайт через код?
Голосование за лучший ответ
Mr.Hale Профи (825) 6 месяцев назад
Примерно:
 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();
}
}
Макс Максбетов Ученик (130) 6 месяцев назад
Работает - не трогай
Валек ЖуравлевГуру (3312) 6 месяцев назад
что нахй работает?????? мне нахер не надо вручную. мне через код нужно!!!
Похожие вопросы