Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 25.01.2013, 00:28   #1141
seaman
Знающий
 
Регистрация: 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
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Сделаешь инспектор, это TextAsset, можешь для него сделать инспектор свой.
Только этот инспектор будет для всех неизвестных форматов. Я не понял как в случае, если не мой формат, то чтобы дальше продолжался поиск подходящего инспектора.

Вообще тут все четко и прозрачно. "Пустышка" - это сам ассет.
Ну в принципе да, просто не привычно(и не удобно) т.к. GameObject устроен по другому.

Записываешь этот список в тот же ассет с четко заданным постоянным именем.
Я имел ввиду как получить список объектов ассета не создавая своего списка. Впрочем пока мне это только ради интереса.

AssetPostprocessor.OnPostprocessAllAssets
Надеюсь получится сделать. А редактор тогда в отдельном окне сделаю.

ЗЫ: плохо, что инспектор для своих объектов делать нельзя
Ага. Я когда-то в злых робатах копался. Там есть такой интересный класс SignalSender, который вызывает методы в указанных скриптах. Имена методов нужно было вручную вводить, что довольно опасно т.к. одной буквой ошибись и черт заметишь эту ошибку. Вот для него так хотелось сделать инспектор, чтобы можно было удобно выбирать объект\скрипт\метод, который нужно вызвать.
Pax говорил, что в 4 версии уже можно так делать.
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 00:53   #1143
seaman
Знающий
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

да, примерно так я и предлагал, так я делал для Antares Universe
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 01:17   #1145
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

seaman, определить мой ли файл несложно. Но если файл не мой, то не знаю как переключится на следующий TextAsset редактор или на дефолтный.
Если в проекте будет несколько таких TextAsset редакторов, то работать будет только один.

Не понял о чем ты говорил, что нельзя.
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 01:39   #1146
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Вообще для этого есть DrawDefaultInspector(); Но тут он не помогает. Не показывается текст обычного текстового файла после своего инспектора.
Не понял о чем ты говорил, что нельзя.
О том, что и в 4-ке нельзя.
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 01:57   #1147
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Интересно, что инспектор текстуры расширить не так просто.
[CustomEditor(typeof(Texture))]не работает
Работает так:
[CustomEditor(typeof(TextureImporter))]
Но при этом инспектор, естественно, выглядит совершенно не стандартно.
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 02:01   #1148
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от WISHMASTER35 Посмотреть сообщение
Вот это сообщение в котором pax писал, что в 4й версии уже можно делать инспектор для поля.
Хорошо что напомнил, надо попробовать
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 02:09   #1150
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 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
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Текстура импортируется этим классом http://docs.unity3d.com/Documentatio...tImporter.html
Не этим. Я же написал - TextureImporter
В Юнити куча классов наследующих AssetImporter. Точно так же ты можешь наследовать AssetImporter и сделать свой импортер своего файла. Но если AssetImporter.GetAtPath работает неверно (нужно проверить) то лучше делать как я написал - переопределять AssetPostprocessor.
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 11:58   #1152
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Посмотрел я все это. Ну неудобно расширять инспектор. Для своих объектов нельзя делать без жуткого геморроя. Если переделывать существующие то вывести стандартный без геморроя тоже не получится. OnPreviewGUI до сих пор не работает.
Единственное для чего он нормально работает - настройка своих компонентов (скриптов наследованных от монобех и повешенных на ГО). Для всего остального значительно проще писать свое окно редактора.
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 12:19   #1153
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

ScriptableObject + CustomEditor попробовал?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 13:53   #1154
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

ScriptableObject + CustomEditor попробовал?
Не, ну это то работает. Создаем ScriptableObject, создаем из него ассет. смотрим инспектор для него. Видим и свои добавки и дефолтный, если надо. Все ОК.
Хотелось несколько иного. Например есть 3ds файл. Хотелось бы для него написать инспектор аналогичный инспектору fbx файла. (Это чисто пример, но понятно что хочется).
Сейчас нужно или из контекстного меню или из меню сверху запускать импортер такого файла, открывать в импортере отдельное окно с настройками импорта...
(Offline)
 
Ответить с цитированием
Старый 25.01.2013, 15:35   #1155
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

да, так я импортер b3d писал ага, тоже бы хотелось, но к сожалению не нашел как сделать
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:59.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com