adressmoeistranici
@adressmoeistranici
Делатель

Как получить спрайт из текстуры?

У меня был массив спрайтов и в него я актив изображения перетаскивал свободно он принимался как спрайт
а теперь сделал отрисовку коллекции в инспекторе и указываю в objectfield
n.Obj = EditorGUILayout.ObjectField(n.Obj, typeof(UnityEngine.Object), false) as Sprite;
и в это поле я не могу вставить изображение, а только вложенный спрайт в изображение. как окно проекта показывает на активе треугольничек, его нажимаешь и у изображения спрайт там.
получается чтоб втащить спрайты надо развернуть каждое изображение. могу конечно принимать текстуру, но опять же не принимается вложенный спрайт в поле текстуры. спрайт не текстура что ли? а объект этот отправляется в спрайтрендерер который конкретно спрайт требует. как мне указать в поле объекта спрайт вне зависимости что я указываю саму текстуру или его вложенный спрайт как было раньше когда я юзал простой массив спрайтов?
  • Вопрос задан
  • 216 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Спрайт это не текстура, он чем-то похож на мини-Mesh, у него есть свой список вершин и ссылка на текстуру, к которой он прикреплён.

Подозреваю, что проблема решится сама собой, если использовать EditorGUILayout.PropertyField. Если такой вариант не подходит, то можно попробовать посмотреть в районе SpriteUtility.GetSpriteFromPathsOrObjects. В этом классе обрабатывается перетаскивание спрайтов на сцену, думаю, что и перетаскивание в инспектор должно быть где-то рядом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы