alexprey, пока отошел, делать редактор логики свой тот. Ну на самом деле с ГУИшкой дерева там маюсь, оно и тут тоже пригодится для MPQ читалки.
я видел этот CrystalMPQ, с него BLP и слизал
Вообще анимашки я пока отложу
Сначала на повестке приклеить MPQ-читалку
Потом файл настроек, в которых хранить штуки аля путь к варкрафту, папку сохранения и так далее + ГУИ окошко чтобы все это было просто заполнять.
Потом извлечение текстурок из папки с моделькой (и если там не все достать их из MPQ) присобачить
Сделать фильтрацию по текстуркам, чтобы 20 раз не создавать одинаковые
Сделать создание материалов и геймобъектов, чтобы префаб можно было готовый на сцену перетаскивать
очень забавно себя ведет вся эта штука.
Если сохранять это на диск, то все работает отменно. Или в битмап - нормально. Но если использовать Texture2D - то вот так, косяками. Опытным путем выяснил, что формат хранения данных в этом случае сохранения становится DXT1, что очень странно, потому что подгружая как DXT1 вручную выходит просто шум (однако - не вылетает с еррором, то есть по факту байты то подходят туда).
В общем пошел через заднее место и сделал по вот такой логике:
считать байты
сохранить на диск
считать текстуру
пересохранить в пнг (в том формате каналы не переворачиваются :()
перевернуть каналы
сохранить
Я понятия не имею, что такого нужно сделать, чтобы он сразу считал нормально.
Впринципе это работает, хоть и жопно получилось. Минус только в том, что я немного теряю в качестве концепции - это тупо для редактора, реал-тайм подхватить не получится, ибо требует сохранения в базу ассетов.
Пофикшено!
Решили-таки проблему как создавать текстурку в памяти.
Всё оказалось очень тривиально, самое странное что я убежден что я так уже пробовал делать, может правда пробовал что-то очень близкое к этому, но не это.
За решение проблемы спасибо пользователю MF, с меня бутылка виски
Да я тоже за мипмапы подумал.
Но пришел в тупик.
Решил вывести все мипмапы от картинки друг под другом и вот что получил:
Здесь можно наблюдать, что бага то характерна в принципе для промежутка.
Если бы это было дело за мипмапом, то картинка бы наблюдалась такая на разных участках, наверное, чтобы можно было это как-то сложить. Но цветная полоса строго в определенном месте на всех мипмапах.
Поправь меня если я не прав или можно предложить что-то тут с ними сделать Еще есть предположение что это каналы и их надо свапать
Делаю тихонько blp, что-то даже выходит, пришлось немножко потрудиться правда.
Однако не всё так гладко как хотелось бы. Вот пример иконки, которую я взял отсюда.
Вот такая она в оригинале:
Что Unity, что UE достойные движки, если у нас на сайте будут спецы по обоим вопросам, да еще и почаще холиварить (только лучше бы холиварили наработками, чья команда круче) было бы только в пользу.
alexprey, даже в нашей скромной обители была запись твоя на эту тему: xgm.guru/p/unity/115371
Вот прямо оттуда копирнул свою заумную писанину и проверил как оно теперь
если вы писали DLL то они соответственно не преобразуются при смене версии. Соответственно тут тупиково, DLL надо переписывать, если они ссылались на UnityEngine.dll/UnityEditor.dll
теперь нельзя переносить файлы из папки в окно проекта. Возможно, временное неудобство.
при удалении файлов из проекта они удаляются насовсем, минуя корзину. Возможно, временное неудобство.
UnityVS надо бы обновить У меня не находятся даже пакеты такие для импорта в проект.
Хорошие новости:
Баг компилятора с символом = в параметре исправлен
Теперь можно спокойно кешировать в однострочнике и приравнивать что-то в функции.
Например:
public new Transform transform
{
get
{
if (cashedTransform == null)
cashedTransform = base.transform;
return cashedTransform;
}
}
private Transform cashedTransform;
Теперь можно записать короче:
public new Transform transform
{
get { return cashedTransform ?? (cashedTransform = base.transform); }
}
private Transform cashedTransform;
Тут тонкость в проверке была, ибо обычные классы скажем кешировались и в старой юньке, но UnityEngine.Object наследники, такие как Transform в первом обращении возвращали null. Соответственно теперь этого не наблюдается, что говорит "да здравствуй логичная логика!"
За баг с (неймспейсами + перегрузки) - при старых условиях себя не проявляет, вероятно отсутствует
Плохие новости:
Баг с дженерик типами остался (то есть такая вложенность не держится CreateInstance<MyClass<int>>())
lentinant, ну так и правильно. Давно уже нужно было сделать такое. Теперь подход в создании шаблонов поведения, однако, сведется к написанию своих прослоек.
В духе такого
namespace UnityEngine
{
public abstract class CashBehaviour : MonoBehaviour
{
private Transform _transform;
public new Transform transform
{
get
{
if (_transform == null)
_transform = base.transform;
return _transform;
}
}
private GameObject _gameObject;
public new GameObject gameObject
{
get
{
if (_gameObject == null)
_gameObject = base.gameObject;
return _gameObject;
}
}
}
}
Надо потестить как ведет себя компилятор на новой юньке. Вдруг почистили синтаксический сахар
Doc, булщит - да. Не стоит такого делать - да.
Вероятно, эта функция предусмотрена на случаи, когда разные интерфейсы разных библиотек просят реализовать метод с одинаковым названием. Модульный подход предусматривает автономные, несвязанные между собой вещи и это как бы намекает, что такие ситуации имеют место быть. В таких случаях такое решение лучше чем его отсутствие.
Это примерно та же история, что и с пространствами имен - там есть вероятность совпадения имен классов, тут есть вероятность совпадения имен методов. Только решается разными способами, а причины общие - избежать двоякости. Кстати интересно как такая конструкция поведет себя под рефлексией - что там покажет. И попробовать, откроется ли под дерефлектором этот код.
alexprey, да
MyClass2 реализует общий для двух интерфейсов метод A(). Сами интерфейсы, как бы сказать, они же не содержат метода как таковые, они обязывают к реализации и абстрагируют. А один и тот же метод это или два разных уже другое дело. Я почему-то думал, что второй способ как раз не вызывает вопросов :) в то время как с первым все не так гладко - чтобы использовать методы нужно приводить экземпляр к интерфейсу. А еще их "смешивать" можно.
Ок. В паре кликов доступности. Как на такие деньги прожить, ума не представляю. На воде экономят наверное, в ванную только по воскресеньям. darkowlom, так и здесь они "средние". На старые деньги 60-70к
Ох как же. А я только обрадовался, что хотя бы один холивар закрылся без боя, этакое "достижение разума". Хрен то там - мода на самоутверждение увы не проходит, и, вряд ли пройдет. ZLOI_DED, я конечно, открыл проект по выпилу ресурсов с ассет сторе, но это было сделано исключительно из целей подстегнуть юзеров развивать раздел, пилить статьи, наработки и так далее. Там даже на главке написано условие добавления участников в проект.
На весь остальной провокационный бред я просто не буду отвечать. Скажу лишь, что ни ко мне, ни к доку, это вообще мало как относится. Единственное в чем ты прав - я пишу на Юньке. Но как бы контент стряпаю сам и имею средней тяжести 3D проекты в разработке и легкой тяжести в портфолио. А Док так-то посерьезней меня будет и поумнее. Потому весь твой крик души упирается о твоё желание сжечь несогласных, обвинив их в том о чем ты не имеешь ни малейшего понятия.
Короче, не будь голословным. И вообще, давайте жить дружно, харэ провоцировать. Искать слабые места друг друга можно вечно, но кто тогда будет работать?
» Unity / WIP - Warcraft 3 To Unity Converter
» Unity / Многопоточность
А еще мне очень нравится как MF пишет. Просто, ясно, доступно
» Unity / WIP - Warcraft 3 To Unity Converter
Ред. Devion
» Unity / WIP - Warcraft 3 To Unity Converter
я видел этот CrystalMPQ, с него BLP и слизал
Вообще анимашки я пока отложу
Ред. Devion
» Unity / WIP - Warcraft 3 To Unity Converter
Если сохранять это на диск, то все работает отменно. Или в битмап - нормально. Но если использовать Texture2D - то вот так, косяками. Опытным путем выяснил, что формат хранения данных в этом случае сохранения становится DXT1, что очень странно, потому что подгружая как DXT1 вручную выходит просто шум (однако - не вылетает с еррором, то есть по факту байты то подходят туда).
В общем пошел через заднее место и сделал по вот такой логике:
Решили-таки проблему как создавать текстурку в памяти.
Всё оказалось очень тривиально, самое странное что я убежден что я так уже пробовал делать, может правда пробовал что-то очень близкое к этому, но не это.
За решение проблемы спасибо пользователю MF, с меня бутылка виски
Ред. Devion
» Unity / WIP - Warcraft 3 To Unity Converter
Но пришел в тупик.
Решил вывести все мипмапы от картинки друг под другом и вот что получил:
Если бы это было дело за мипмапом, то картинка бы наблюдалась такая на разных участках, наверное, чтобы можно было это как-то сложить. Но цветная полоса строго в определенном месте на всех мипмапах.
Еще есть предположение что это каналы и их надо свапать
Ред. Devion
» Unity / WIP - Warcraft 3 To Unity Converter
Однако не всё так гладко как хотелось бы. Вот пример иконки, которую я взял отсюда.
Вот такая она в оригинале:
» Unity / Unity 5 - релиз!
» Unreal Engine / Unreal Engine 4 - теперь условно бесплатно!
Ред. Devion
» Unity / Unity 5 - релиз!
Вот прямо оттуда копирнул свою заумную писанину и проверил как оно теперь
Ред. Devion
» Unity / Unity 5 - релиз!
Например:
» Unity / Unity 5 - релиз!
Ред. Devion
» Unity / Unity 5 - релиз!
» Unity / Unity 5 - релиз!
Список изменений. Сюда копировать нет смысла, ибо огромен
» Unity / Unity 5 - релиз!
Ред. Devion
» Программирование / Реализация нескольких интерфейсов с общим родителем
Вероятно, эта функция предусмотрена на случаи, когда разные интерфейсы разных библиотек просят реализовать метод с одинаковым названием. Модульный подход предусматривает автономные, несвязанные между собой вещи и это как бы намекает, что такие ситуации имеют место быть. В таких случаях такое решение лучше чем его отсутствие.
Это примерно та же история, что и с пространствами имен - там есть вероятность совпадения имен классов, тут есть вероятность совпадения имен методов. Только решается разными способами, а причины общие - избежать двоякости.
Кстати интересно как такая конструкция поведет себя под рефлексией - что там покажет. И попробовать, откроется ли под дерефлектором этот код.
Ред. Devion
» Программирование / Реализация нескольких интерфейсов с общим родителем
MyClass2 реализует общий для двух интерфейсов метод A(). Сами интерфейсы, как бы сказать, они же не содержат метода как таковые, они обязывают к реализации и абстрагируют. А один и тот же метод это или два разных уже другое дело.
Я почему-то думал, что второй способ как раз не вызывает вопросов :) в то время как с первым все не так гладко - чтобы использовать методы нужно приводить экземпляр к интерфейсу. А еще их "смешивать" можно.
Ред. Devion
» Программирование / Реализация нескольких интерфейсов с общим родителем
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
Ред. Devion
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
http://prntscr.com/67mnvk
darkowlom, так и здесь они "средние". На старые деньги 60-70к
Ред. Devion
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
» XGM Team / Spotlight
» Low-Poly Art в игровой индустрии / Что почитать/послушать про игровую разработку
Ред. Devion
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
ZLOI_DED, я конечно, открыл проект по выпилу ресурсов с ассет сторе, но это было сделано исключительно из целей подстегнуть юзеров развивать раздел, пилить статьи, наработки и так далее. Там даже на главке написано условие добавления участников в проект.
На весь остальной провокационный бред я просто не буду отвечать. Скажу лишь, что ни ко мне, ни к доку, это вообще мало как относится. Единственное в чем ты прав - я пишу на Юньке. Но как бы контент стряпаю сам и имею средней тяжести 3D проекты в разработке и легкой тяжести в портфолио. А Док так-то посерьезней меня будет и поумнее. Потому весь твой крик души упирается о твоё желание сжечь несогласных, обвинив их в том о чем ты не имеешь ни малейшего понятия.
Короче, не будь голословным.
И вообще, давайте жить дружно, харэ провоцировать. Искать слабые места друг друга можно вечно, но кто тогда будет работать?