 |
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
25.01.2013, 00:28
|
#1141
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
А сделать загрузчик для своего формата нельзя?
|
Можно, конечно:
AssetPostprocessor.OnPostprocessAllAssets
ЗЫ: плохо, что инспектор для своих объектов делать нельзя 
Вот например импорт xml описания атласа шрифта:
using UnityEditor;
using UnityEngine;
public class XMLpostprocessor : AssetPostprocessor
{
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
{
foreach (string i in importedAssets)
{
if (i.EndsWith(".xml"))
{
Debug.Log("xml file impored " + i);
FontImport.ImportFont(i);
}
}
}
}
Собственно импорт осуществляет класс FontImport, а это для автоматизации импорта.
|
(Offline)
|
|
25.01.2013, 00:41
|
#1142
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Сделаешь инспектор, это TextAsset, можешь для него сделать инспектор свой.
|
Только этот инспектор будет для всех неизвестных форматов. Я не понял как в случае, если не мой формат, то чтобы дальше продолжался поиск подходящего инспектора.
Вообще тут все четко и прозрачно. "Пустышка" - это сам ассет.
|
Ну в принципе да, просто не привычно(и не удобно) т.к. GameObject устроен по другому.
Записываешь этот список в тот же ассет с четко заданным постоянным именем.
|
Я имел ввиду как получить список объектов ассета не создавая своего списка. Впрочем пока мне это только ради интереса.
AssetPostprocessor.OnPostprocessAllAssets
|
Надеюсь получится сделать. А редактор тогда в отдельном окне сделаю.
ЗЫ: плохо, что инспектор для своих объектов делать нельзя
|
Ага. Я когда-то в злых робатах копался. Там есть такой интересный класс SignalSender, который вызывает методы в указанных скриптах. Имена методов нужно было вручную вводить, что довольно опасно т.к. одной буквой ошибись и черт заметишь эту ошибку. Вот для него так хотелось сделать инспектор, чтобы можно было удобно выбирать объект\скрипт\метод, который нужно вызвать.
Pax говорил, что в 4 версии уже можно так делать.
|
(Offline)
|
|
25.01.2013, 00:53
|
#1143
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Pax говорил, что в 4 версии уже можно так делать.
|
С четверкой не работал, поэтому не знаю
|
нельзя. Единственное что приходит в голову - сделать расширение своего файла txt. И:
[CustomEditor(typeof(TextAsset))]
public class GobInspector : Editor
{
public override void OnInspectorGUI()
{
GUILayout.Label("This is a Label in a Custom Editor");
}
}
Ну а внутри разбирать - Ваш ли это файл или нет.
Хотя может я на ночь глядя туплю.
|
(Offline)
|
|
25.01.2013, 01:07
|
#1144
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
да, примерно так я и предлагал, так я делал для Antares Universe
|
(Offline)
|
|
25.01.2013, 01:17
|
#1145
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
seaman, определить мой ли файл несложно. Но если файл не мой, то не знаю как переключится на следующий TextAsset редактор или на дефолтный.
Если в проекте будет несколько таких TextAsset редакторов, то работать будет только один.
Не понял о чем ты говорил, что нельзя.
|
(Offline)
|
|
25.01.2013, 01:39
|
#1146
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Вообще для этого есть DrawDefaultInspector(); Но тут он не помогает. Не показывается текст обычного текстового файла после своего инспектора.
Не понял о чем ты говорил, что нельзя.
|
О том, что и в 4-ке нельзя.
|
(Offline)
|
|
25.01.2013, 01:57
|
#1147
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Интересно, что инспектор текстуры расширить не так просто.
[CustomEditor(typeof(Texture))]не работает
Работает так:
[CustomEditor(typeof(TextureImporter))]
Но при этом инспектор, естественно, выглядит совершенно не стандартно.
|
(Offline)
|
|
25.01.2013, 02:01
|
#1148
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Вот это сообщение в котором pax писал, что в 4й версии уже можно делать инспектор для поля.
Сообщение от pax
В четверке появились класс PropertyDrawer и атрибут CustomPropertyDrawer для этих целей. А так же PropertyAttribute для модификации отображения конкретных свойств, например задать Range для чисел.
|
seaman, не пойму как через AssetPostprocessor.OnPostprocessAllAssets загрузить свой формат?
В документации лишь вывод в консоль написали http://docs.unity3d.com/Documentatio...AllAssets.html
|
(Offline)
|
|
25.01.2013, 02:04
|
#1149
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от WISHMASTER35
Вот это сообщение в котором pax писал, что в 4й версии уже можно делать инспектор для поля.
|
Хорошо что напомнил, надо попробовать
|
(Offline)
|
|
25.01.2013, 02:09
|
#1150
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Текстура импортируется этим классом http://docs.unity3d.com/Documentatio...tImporter.html
Спасибо рефракторингу. Может и свой формат так же можно загрузить.
Я не знаю как с программированием редактора дела обстоят в UDK и CRYENGINE, но расширяемость юнити ограничивается фактически возможностью создания своего инспектора.
UPDATE
Погуглив на тему AssetImporter мне кажется, что поддержку своего формата не сделаешь.
А метод который возвращает AssetImporter для файла AssetImporter.GetAtPath наверно работает фиксировано и кастомизации не подлежит. Странно, но его пометили как extern и вынесли куда-то реализацию.
Последний раз редактировалось WISHMASTER35, 25.01.2013 в 03:19.
|
(Offline)
|
|
25.01.2013, 10:06
|
#1151
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Не этим. Я же написал - TextureImporter
В Юнити куча классов наследующих AssetImporter. Точно так же ты можешь наследовать AssetImporter и сделать свой импортер своего файла. Но если AssetImporter.GetAtPath работает неверно (нужно проверить) то лучше делать как я написал - переопределять AssetPostprocessor.
|
(Offline)
|
|
25.01.2013, 11:58
|
#1152
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Посмотрел я все это. Ну неудобно расширять инспектор. Для своих объектов нельзя делать без жуткого геморроя. Если переделывать существующие то вывести стандартный без геморроя тоже не получится. OnPreviewGUI до сих пор не работает.
Единственное для чего он нормально работает - настройка своих компонентов (скриптов наследованных от монобех и повешенных на ГО). Для всего остального значительно проще писать свое окно редактора.
|
(Offline)
|
|
25.01.2013, 12:19
|
#1153
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
ScriptableObject + CustomEditor попробовал?
|
(Offline)
|
|
25.01.2013, 13:53
|
#1154
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
ScriptableObject + CustomEditor попробовал?
|
Не, ну это то работает. Создаем ScriptableObject, создаем из него ассет. смотрим инспектор для него. Видим и свои добавки и дефолтный, если надо. Все ОК.
Хотелось несколько иного. Например есть 3ds файл. Хотелось бы для него написать инспектор аналогичный инспектору fbx файла. (Это чисто пример, но понятно что хочется).
Сейчас нужно или из контекстного меню или из меню сверху запускать импортер такого файла, открывать в импортере отдельное окно с настройками импорта...
|
(Offline)
|
|
25.01.2013, 15:35
|
#1155
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
да, так я импортер b3d писал ага, тоже бы хотелось, но к сожалению не нашел как сделать
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:59.
|