 |
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
26.01.2013, 16:20
|
#1156
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Почитал про PropertyDrawer.
Классно. Интересно, что можно помечать переменные своим атрибутом и создать для своего атрибута этот PropertyDrawer. Как в примере с RangeAttribute.
Но вот чего я не понял, это почему все рисуется через EditorGUI, а не EditorGUILayout! Если я правильно понял, то рисовать можно только в одну строку. Сильно не разгонишься!!!!!!!!!!!!!!!!!!!
seaman,
Не этим. Я же написал - TextureImporter
|
Это я ссылку перепутал))
Опять про AssetPostprocessor.
seaman, в твоем примере шрифт грузится просто в статическую ссылку?
Юнити шрифт и другие поддерживаемые форматы в инспекторе отображается как обычный ассет, что очень удобно. Да и в билд сам файл шрифта думаю не попадает, а остается ассет созданный из данных шрифта.
|
(Offline)
|
|
26.01.2013, 17:04
|
#1157
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
в твоем примере шрифт грузится просто в статическую ссылку?
|
У меня шрифт не ttf, а атлас типа:

Он создается в спецпрограмме, которая кроме такого атласа создает описание его - список литер с координатами и еще некоторыми параметрами. Вот это описание я и гружу. В описании есть имя текстуры атласа. Так что при парсине можно привязать такой битмапфонт к текстуре. После загрузки создается структура с описанием фонта и внутри с описанием каждой литеры. Эта структура сохраняется (либо в файл своего формата в папку Resources, либо вообще в базу данных - по необходимости). Рантайм по описанию создается текстура с нужным текстом. Текстура накладывается куда нужно.
|
(Offline)
|
|
26.01.2013, 17:14
|
#1158
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Я когда-то тоже делал свой шрифт. Сделал ScriptableObject и сделал для него инспектор в котором была кнопочка импорта моего формата. Т.е. нажимал эту кнопочку, выбирал мой файл и его данные грузились в мой ассет, после чего файл можно было даже удалить) Хотя в билд он и не должен был попадать т.к. ссылок на него нету. Не очень удобно, но работало.
Я имел ввиду куда твой FontImport.ImportFont сохраняет загруженные данные? Просто в статическую ссылку? Или GO со шрифтом в сцене создает?
[UPDATE]
Подожди, OnPostprocessAllAssets вызывается в редакторе, а не на старте сцены?
|
(Offline)
|
|
26.01.2013, 17:40
|
#1159
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Есть:
static public class CustomFonts
{
private static readonly ChrDesc _nullChar = new ChrDesc(' ', new Rect(0,0,0,0), new Point(0,0), 0);
public static void AddChangeFont(CustomFont cf)
{
Там производится сохранение добавляемого/меняемого шрифта (CustomFont). FontImport.ImportFont после парсинга просто вызывает AddChangeFont, передавая ему только что созданный фонт.
Рантайм читаем сохраненный CustomFont и передаем его в
static public class CreateGo
{
static public GameObject GoFromText(string text, CustomFont font, int lineSpacing, QuadInfo info, Camera guicam)
{
Он создает GameObject. Меш - плейник, текстура материала создается из текста string text в самом CustomFont есть:
public static Texture2D CreateTextToTexture(string text, Point textPos, Size textureSize, float scale, int lineSpacing)
{
Соответственно можно не создавать ГО, а просто создать нужную текстуру и наложить ее на любой обхект
|
(Offline)
|
|
26.01.2013, 23:54
|
#1160
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Сейчас заметил, что если сделать редактор для TextAsset, то он полностью неактивен т.к. кнопки не жмутся, текст не вводится и весь он как белой пеленой покрыт.
Это так и должно быть? Что-то раньше не замечал.
И я так понял в редакторе TextAsset нельзя изменить?
|
(Offline)
|
|
27.01.2013, 00:22
|
#1161
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Подожди, OnPostprocessAllAssets вызывается в редакторе, а не на старте сцены?
|
Конечно. Когда суешь в проект какой-то файл,- Юнити пытается его импортировать. По окончании импорта и вызывается OnPostprocessAllAssets. В него передается ссылка на файлы, которые Юнити импортировала.
|
(Offline)
|
|
27.01.2013, 00:59
|
#1162
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Кстати, свою сериализацию можно сделать с помощью BinaryFormatter, который хорошо работает с полиморфизмом. А полученный массив байт сохранит уже сериализатор юнити. Только загружать\сохранять придется вручную.
public static T Load<T>(byte[] data) {
MemoryStream stream = new MemoryStream(data);
BinaryFormatter bf = new BinaryFormatter();
T obj = (T)bf.Deserialize(stream);
stream.Close();
return obj;
}
public static byte[] Save(object obj) {
MemoryStream stream = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(stream, obj);
byte[] data = stream.ToArray();
stream.Close();
return data;
}
А вот XmlSerializer плохо работает с полиморфизмом( А хотелось сделать свой читабельный xml формат.
Но может и к лучшему) Наверно лучше создавать свой формат, а не пользоваться сериализаторами. Буду теперь свой xml формат придумывать и писать для него import/export
Только не пойму TextAsset редактировать вообще нельзя?
|
(Offline)
|
|
27.01.2013, 01:01
|
#1163
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Только не пойму TextAsset редактировать вообще нельзя?
|
Вспомнил я, что Pax говорил, что делал это для Антарес. Полез в него. Откопал. Делаем так:
[CustomEditor(typeof(TextAsset))]
public class GobInspector : Editor
{
public override void OnInspectorGUI()
{
GUI.enabled = true;
GUILayout.Label("This is a Label in a Custom Editor");
if(GUILayout.Button("Probe")) Debug.Log("PROBE");
}
}
|
(Offline)
|
|
27.01.2013, 01:05
|
#1164
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопросы от новичка
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 33 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
|
(Offline)
|
|
27.01.2013, 01:14
|
#1165
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
seaman, так и знал, что gui где-то должно отключаться, но забыл где)
LLI.T.A.L.K.E.R., тут делают игры, а не ломают их.
Кстати, конечно сцена там простая, но я сначала подумал, что то реальные фото)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.01.2013, 01:33
|
#1166
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопросы от новичка
Написал ему на почту, либо если его знаете - сообщите.
Просто, только второй раз пользуюсь отправкой электронного письма.
|
(Offline)
|
|
27.01.2013, 01:34
|
#1167
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
LLI.T.A.L.K.E.R Из вебсборки выдрать ресурсы достаточно легко. Из стендэлон нет. Если невмоготу - 3dripper в руки - и работать. Но вообще то такое и новичок может сам сделать. Ни моделек ни текстур крутых я там не увидел.
|
(Offline)
|
|
27.01.2013, 01:45
|
#1168
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопросы от новичка
|
(Offline)
|
|
27.01.2013, 02:16
|
#1169
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Машинка
Уверен, что это Вам не поможет. Быстренько только кошки родятся.
Хотя сделать такую машинку нужно где-то полчаса работы.
|
(Offline)
|
|
27.01.2013, 09:52
|
#1170
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от WISHMASTER35
А вот XmlSerializer плохо работает с полиморфизмом( А хотелось сделать свой читабельный xml формат.
|
Прочитай полностью, особенно третий пост
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:21.
|