Понедельник, 11 Ноября 2024, 06:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
как присвоить спрайт программно?
silver152rusДата: Среда, 22 Июня 2016, 16:06 | Сообщение # 1
был не раз
Сейчас нет на сайте
http://s1.uploadpics.ru/images/bJYYQZki4W.png
что написать чтоб присвоить спрайт программно?


Тык
LertmindДата: Среда, 22 Июня 2016, 17:33 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Если в рантайм (во время игры) - Resources. Надо будет создать папку Resources в любом месте в Assets и туда положить текстуры, потом загружать с помощью Resources.Load. Стоит учитывать, что все ассеты из Resources будут в билде игры, даже если вы их не используете.
Если хотите присваивать в редакторе, это надо смотреть в сторону скриптов для редактора и AssetDatabase.
silver152rusДата: Среда, 22 Июня 2016, 19:27 | Сообщение # 3
был не раз
Сейчас нет на сайте
Lertmind спс,первый вариант подошёл,второй вообще мимо...

а так надо было вообще не в юнити делать этот редактор карт...
задумка такая,в скомпилированном проекте папка в которую кидаешь тайлы(например в .png а как они называются вообще неважно также как и размер) они появляются в меню как кнопки по нажатию на которые
мышь начинает ставить блоки с соответствующим изображением...
ну да ладно,вроде что-то выходит)


Тык

Сообщение отредактировал silver152rus - Среда, 22 Июня 2016, 19:38
ShortKedrДата: Среда, 22 Июня 2016, 19:53 | Сообщение # 4
Renword Studio
Сейчас нет на сайте
Lertmind, рантайм или редактор, Resources везде подходит. В любом случае можно добавить Editor папку
LertmindДата: Среда, 22 Июня 2016, 20:15 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
silver152rus, так и надо было говорить, это загрузка файлов из внешних источников, для этого используется класс WWW (как для веба, так и с диска). Пример для текстуры есть здесь. Только надо url изменить на путь "file://" + path, например здесь проигрываются все аудиофайлы из папки, заданные по расширению. Чтобы превратить Texture2D в Sprite, используй класс Sprite.

Добавлено (22 июня 2016, 20:06)
---------------------------------------------
ShortKedr, с помощью AssetDatabase не обязательно класть ассеты в Resources, а это большой плюс.

Добавлено (22 июня 2016, 20:15)
---------------------------------------------
ShortKedr, и папку Editor не обязательно, если написать так:

Код
// Скрипт на Cube
using UnityEngine;
public class AssignScript : MonoBehaviour
{
    public Sprite sprite;
}

// Скрипт лежит где угодно в Assets, после нажатия на кнопку происходит присвоение
using UnityEngine;
using UnityEditor;

public class AssignEditor
{
    [MenuItem("AssetDatabase/LoadAssetExample")]
    static void LoadAssetExample()
    {
        Sprite t = AssetDatabase.LoadAssetAtPath("Assets/texture.png", typeof(Sprite)) as Sprite;
        GameObject.Find("Cube").GetComponent<AssignScript>().sprite = t;
    }
}
ShortKedrДата: Среда, 22 Июня 2016, 21:39 | Сообщение # 6
Renword Studio
Сейчас нет на сайте
Цитата Lertmind ()
с помощью AssetDatabase не обязательно класть ассеты в Resources, а это большой плюс.

Lertmind, да, всё верно


Сообщение отредактировал ShortKedr - Среда, 22 Июня 2016, 21:43
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг