{ "version": "https:\/\/jsonfeed.org\/version\/1", "title": "Проекты", "_rss_description": "У меня есть несколько хобби-проектов, которые я пытаюсь поддерживать, потому что пользуюсь этим сам", "_rss_language": "ru", "_itunes_email": "", "_itunes_categories_xml": "", "_itunes_image": "", "_itunes_explicit": "", "home_page_url": "https:\/\/mopsicus.ru\/tags\/projects\/", "feed_url": "https:\/\/mopsicus.ru\/tags\/projects\/json\/", "icon": "https:\/\/mopsicus.ru\/user\/userpic@2x.jpg?1707898340", "author": { "name": "Игорь Лопатин", "url": "https:\/\/mopsicus.ru\/", "avatar": "https:\/\/mopsicus.ru\/user\/userpic@2x.jpg?1707898340" }, "items": [ { "id": "271", "url": "https:\/\/mopsicus.ru\/all\/2024-year\/", "title": "2024 год", "content_html": "
В этом году было всего 8 заметок, вместе с этой 9 😅 Из которых 3 — в декабре. В новом году ухожу с Эгеи...<\/p>\n
Перевёл все свои заметки и базу знаний в Обсидиан. Оказался удобным, даже с минимумом плагинов. Когда была волна переездов с Ноушена видел статьи как можно обмазаться кучей плагинов и будет почти также, но сам использую только основные. Ещё использую официальный вебклиппер, даже запушил<\/a> русскую локализацию :)<\/p>\n И мне понравилась эта идея хранить всё в отдельных файлах, а не в БД, что я решил перевести сайт и блог на такой же формат. Возьму какой-нибудь генератор статичных сайтов или напишу свой, для разминки 🙄 Эгея хороший движок, но все-таки исключительно бложный, который ограничивает многие моменты, да и последние интересные функции платные. Так что, волевым решением, сделаю себе новый сайт и блог, переведу всё на маркдаун файлы и хтмльки, обновлю некоторые заметки которые устарели.<\/p>\n Выпустили Морской Бой<\/a>. Пока метрики так себе, ожидали немного другого :)) В новом году будет минимум две большие обновы. Ещё в разработке две новые карточные игры, о них как-нибудь расскажу. В начале года выпустил игру «Камень, ножницы, бумага<\/u>»<\/a> на основе телеграм-бота. Она кстати живая ещё, там даже кто-то играет.<\/p>\n Выпустил Shardy<\/a> — мой пет-проект, фреймворк для создания онлайн игр. Пока не запушил, но несколько апдейтов уже готовы. Начал делать сервис-дискавери, думаю насчет демки для Яндекс.Игр, может на праздниках получиться, что-то поделать. И статью хотел на Хабр ещё обзорную сделать...<\/p>\n Начал пользоваться ChatGPT и другими нейронками<\/a>. Обработка фото, текстов, саммари, какой-то быстрый анализ. Иногда конечно выглядит как магия, хочет подробнее разобраться и сделать что-то подобное самому.<\/p>\n Как-то так. В новом году будет всё лучше и интересней 🔥<\/p>\n",
"date_published": "2024-12-27T11:14:53+03:00",
"date_modified": "2024-12-27T11:14:49+03:00",
"_date_published_rfc2822": "Fri, 27 Dec 2024 11:14:53 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "271",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": []
}
},
{
"id": "270",
"url": "https:\/\/mopsicus.ru\/all\/fsm-for-csharp\/",
"title": "FSM для C#",
"content_html": " Доделал пакет для Shardy<\/a>: реализацию машины состояний (finite state machine). Все стейты и триггеры добавляются через билдер, цепочкой.<\/p>\n Для перехода на стейт надо активировать триггер(ы):<\/p>\n В таком случае получится такой результат:<\/p>\n initial is standing Ещё подсмотрел, как сгенерить описание для UML диаграммы и отрендерить её на сайте<\/a> или на этом<\/a>, по-моему у них один движок:<\/p>\n Чтобы сделать диаграмму более «интуитивной», вместо слова state используется ключевое слово agent, этом случае можно рисовать разные линии.<\/p>\n Ещё к каждому переходу можно добавлять условия, (на картинке выше их нет) об этом подробнее в документации<\/a>.<\/p>\n Если у перехода между состояниями есть условие(я), то линия будет рисоваться пунктирной, а если нет триггера — то с крестиком на конце. Актуально когда состояний и переходов много, можно сгенерить диаграмму и посмотреть нет ли косяков.<\/p>\n Github<\/a><\/p>\n",
"date_published": "2024-12-05T12:18:04+03:00",
"date_modified": "2024-12-05T12:17:48+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/fsm-example.jpg",
"_date_published_rfc2822": "Thu, 05 Dec 2024 12:18:04 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "270",
"_e2_data": {
"is_favourite": false,
"links_required": [
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css"
],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/fsm-example.jpg",
"https:\/\/mopsicus.ru\/pictures\/fsm-uml.jpg"
]
}
},
{
"id": "267",
"url": "https:\/\/mopsicus.ru\/all\/shardy\/",
"title": "Shardy",
"content_html": " Друзья, был у меня давно один проект, который претерпел уже наверное 4 или 5 итераций. Этой штукой я пользуюсь на своих пет-проектах и со временем появилось желание сделать из всего этого опенсорсную историю. Поэтому начну из далека :)<\/p>\n Давным-давно был такой проект на гитхабе Pomelo<\/a>. По меркам интернета — реально древний, ему больше 10 лет. Он и сейчас там есть, но уже заархивирован и не поддерживается, но форки вроде пилятся. Кто первый раз слышит, это фреймворк для создания игровых серверов на JavaScript и Node.js. Проект довольно большой, куча модулей, клиенты под разные платформы, хорошая дока. Наткнулся я на него несколько лет назад и начал ковырять, запускать, что-то пробовать. В итоге, многие вещи в нём мне понравились, но показалось всё как-то замудрёно что ли. Наверно потому что китайцы писали, а может я в ноду не сильно мог 😅 В общем, оттуда я потягал какие-то скрипты, интересные решения, потом переписал, упростил и, получился у меня такой лайтовый сервер из нескольких файлов, на котором я тестил всякие свои проекты, изучал ноду, яваскрипт и тайпскрипт позднее.<\/p>\n Потом решил поделиться своими поделками и выложить на гитхаб. Когда было свободное время что-то дописывал, переписывал и снова забывал, потому что были задачи поважнее. В какой-то момент, переписал всё на TypeScript (TS). К тому времени уже были наработки не только сервера, но и клиента на C# + Unity и всё это дело стало обретать какой-то полезный вид. И вот, в результате n-ой итерации, архитектура устоялась, протестировалась и получился Shardy.<\/p>\n Shardy<\/a> — это фреймворк для онлайн игр и приложений на Node.js. Он даёт базовую функциональность для построения микросервисных решений: мобильных, социальных, веб, многопользовательских игр, приложений реального времени, чатов, middleware сервисов и т. п. Есть клиент на TS встроенный в фреймворк, а также пакет для Unity<\/a>, который поддерживает сборки под iOS, Android и WebGL. Здесь я говорю микросервисных потому что по задумке, за каждый модуль будет отвечать отдельный Shardy-сервис со своими командами, настройками, возможно БД.<\/p>\n Основные фичи:<\/p>\n Есть демка с примерами работы API и простенькая онлайн игра «Крестики-Нолики»: как серверная часть, так и клиентская. Всё можно посмотреть, поковырять, запустить у себя и попробовать поиграть. Весь код старался комментировать, иногда даже излишне. Также есть документация<\/a> с описанием всех компонентов и методов. Это всё в процессе наполнения и улучшения.<\/p>\n Основная цель Shardy — предоставить простое бесплатное решение для создания многопользовательских онлайн игр. Вот так вот громко 😅 На это будет обращено основное внимание при дальнейшей разработке новых функций, сервисов и туторов (было бы время...).<\/p>\n Не претендую на академическую правильность архитектуры и кода, делал в первую очередь для своих нужд. Но как показал опыт: зачастую многие принципы ООП, чистого кода, использование паттернов в «нужных» местах, разбиваются об реальность конкретного проекта :)<\/p>\n Приглашаю всех заинтересованных инди и не только, в подписчиках вроде такие есть, посмотреть, покрутить, примерить, потестить на своих каких-то задачах, играх, проектах, прототипах. Если будут вопросы, отвечу тут в комментах или на почту mail@mopsicus.ru. В личку тоже можно, но могу не заметить или долго отвечать.<\/p>\n Вот такое интро. Всем хороших игр! Онлайн игр :)<\/p>\n Shardy<\/a> У меня есть пару проектов в опенсорсе<\/a> которые я давно поддерживаю. И только совсем недавно я добавил в ридми файл инфу с кошельками, на которые можно задонатить и поддержать проект. До этого мне просто писали в личку в телеге с вопросами и благодарностями, спрашивали куда и как можно перевести. Штош, я сократил этот путь :)<\/p>\n Сам закидываю в помощь авторам, где монетой, где пулл реквестом. И это касается не только разработчиков, ютуберы которые снимают интересные видео, тоже получают материальную благодарочку, а им сейчас сложно :( Считаю что хорошая работа должна быть вознаграждена!<\/p>\n К чему это я? Друзья, если давно пользуйтесь какой-то бесплатной программой, утилитой, библиотекой, кодом — скиньте «спасибо» автору, купите премиум, отправьте открытку в конце концов, ему будет приятно, повысит мотивацию не забрасывать свой проект. Всем добра.<\/p>\n",
"date_published": "2024-09-09T15:24:27+03:00",
"date_modified": "2024-09-09T15:23:59+03:00",
"_date_published_rfc2822": "Mon, 09 Sep 2024 15:24:27 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "265",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": []
}
},
{
"id": "264",
"url": "https:\/\/mopsicus.ru\/all\/unity-infinite-scroller-v2-0\/",
"title": "Unity infinite scroller v2.0",
"content_html": " Обновил скрипт бесконечного списка. Переделал реп в пакет пригодный для Unity, обновил демки, добавил функцию прокрутки к элементу и доку небольшую.<\/p>\n Делалось для мобилок, чтобы не тормозило с большим количеством элементов и была привычная функция pull to refresh. Но некоторые используют и в ПК билдах 😄<\/p>\n Github<\/a><\/p>\n",
"date_published": "2024-04-02T14:09:54+03:00",
"date_modified": "2024-04-02T14:09:44+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/logo-uis.png",
"_date_published_rfc2822": "Tue, 02 Apr 2024 14:09:54 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "264",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/logo-uis.png"
]
}
},
{
"id": "263",
"url": "https:\/\/mopsicus.ru\/all\/unity-mobile-input-v2-0\/",
"title": "Unity Mobile Input v2.0",
"content_html": " Обновил свой плагин для создания нативных полей ввода на мобилках. Исправил старые баги, причесал немного код, добавил комменты и обновил демо.<\/p>\n Функции:<\/p>\n В новой версии добавил несколько методов чтобы можно было менять некоторые параметры во время исполнения:<\/p>\n Устанавливается как пакет через Unity Package Manager.<\/p>\n Github<\/a><\/p>\n",
"date_published": "2024-03-27T14:16:56+03:00",
"date_modified": "2024-03-27T14:16:46+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/umi-v2.png",
"_date_published_rfc2822": "Wed, 27 Mar 2024 14:16:56 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "263",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/umi-v2.png"
]
}
},
{
"id": "259",
"url": "https:\/\/mopsicus.ru\/all\/telegram-bot-builder-unity\/",
"title": "Unity Builder Bot",
"content_html": " Бот сделан на основе моего старого скрипта из этой статьи<\/a>.<\/p>\n Телеграм бот и расширение редактора для билда Unity проектов. Можно использовать по отдельности, но проектировалось чтобы работало вместе. Все исходники по ссылкам.<\/p>\n Телеграм бот<\/a> написан на Node.js и Telegraf.js. Может пулить апдейты, запускать билд юнити проекта, билдить Xcode проект (на маке), всё подписывать, загружать на сервер и скидывать ссылку. Билды для iOS тоже можно ставить по ссылке, там подключается манифест разработчика.<\/p>\n Основные функции:<\/p>\n Это все можно сделать с помощью телеграм, даже не запуская Unity. Каждый этап сборки логируется и уведомляется ботом.<\/p>\n Расширение редактора<\/a> позволяет быстро переключаться между платформами, включать дефайны, запускать локальный и удаленный билд на боте, подставлять данные для Keystore, нужные зависимости для Huawei, добавлять локализации для iOS, также добавлять сторонние файлы в билд. Есть демка<\/a> с набором файлов и примерной структурой.<\/p>\n Основные функции:<\/p>\n Получилось как-то так, думаю кому-то будет полезно и интересно поковырять исходники. Подписывайтесь на Telegram канал<\/a>, там посты появляются чаще %)<\/p>\n",
"date_published": "2022-06-08T20:12:33+03:00",
"date_modified": "2022-06-09T11:49:49+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/ubh.png",
"_date_published_rfc2822": "Wed, 08 Jun 2022 20:12:33 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "259",
"_e2_data": {
"is_favourite": true,
"links_required": [
"system\/library\/jquery\/jquery.js",
"system\/library\/fotorama\/fotorama.css",
"system\/library\/fotorama\/fotorama.js"
],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/ubh.png",
"https:\/\/mopsicus.ru\/pictures\/ubh-settings.png"
]
}
},
{
"id": "232",
"url": "https:\/\/mopsicus.ru\/all\/200-stars-github-infinite-scroll-unity\/",
"title": "200 звёзд на Github",
"content_html": " Achievement unlocked!<\/p>\n Моё новое скромное достижение. Скрипт с data-driven прокруткой для Unity<\/a>, получил 200 звёзд на Github. Спасибо S1ROZHA :)<\/p>\n Мне как-то писали, что используют его в MTG Arena и ещё какой-то популярной игре. Приятно что этим пользуюсь не только я.<\/p>\n",
"date_published": "2021-01-12T11:27:07+03:00",
"date_modified": "2021-01-12T14:36:46+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/scroll-200-stars.png",
"_date_published_rfc2822": "Tue, 12 Jan 2021 11:27:07 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "232",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/scroll-200-stars.png"
]
}
},
{
"id": "221",
"url": "https:\/\/mopsicus.ru\/all\/custom-fonts-support-unitymobileinput\/",
"title": "Кастомные шрифты в UnityMobileInput",
"content_html": " Обновил плагин UnityMobileInput<\/a>.<\/p>\n Теперь можно использовать свои шрифты в нативном поле ввода. Просто копируете TTF шрифт в проект, в папку StreamingAssets<\/b>, дальше плагин всё сделает сам: скопирует в папку приложения на Android или iOS и применит для нужного поля ввода.<\/p>\n Также, был баг (фича), что при тапе по экрану клавиатура исчезала, это её нормальное поведение, в общем-то. Но иногда надо чтобы она оставалась видимой даже если на что-то жмёшь. Теперь есть такая опция.<\/p>\n",
"date_published": "2020-10-15T22:03:51+03:00",
"date_modified": "2020-10-15T22:03:45+03:00",
"_date_published_rfc2822": "Thu, 15 Oct 2020 22:03:51 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "221",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": []
}
},
{
"id": "169",
"url": "https:\/\/mopsicus.ru\/all\/github-100-stars\/",
"title": "100 звёзд на Github",
"content_html": " Скрипт с бесконечным скроллом для Unity<\/a> получил 100 звёзд на Github. Вроде мелочь, а приятно :)<\/p>\n Кстати, если решили что-то делать в open source, но не знаете как начать, прочтите этот перевод небольшой статьи на Hexlet<\/a>.<\/p>\n",
"date_published": "2019-07-08T10:34:58+03:00",
"date_modified": "2019-07-08T10:34:44+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/scroller-git-stars.png",
"_date_published_rfc2822": "Mon, 08 Jul 2019 10:34:58 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "169",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/scroller-git-stars.png"
]
}
},
{
"id": "165",
"url": "https:\/\/mopsicus.ru\/all\/textmeshpro-inputfield-unitymobileinput\/",
"title": "UnityMobileInput больше не нужен",
"content_html": " Обновлено 16.05.2019<\/i> Теперь дополнительное поле ввода не появляется на iOS и Android! Мой UnityMobileInput<\/a> не особо-то и нужен, всё можно сделать «штатными» компонентами и оно будет работать как надо, вроде :) Там же есть и поддержка эмоджи.<\/p>\n Рано радовался, определять высоту экранной клавиатуры юнитеки так и не научились... Всё равно придётся использовать костыль, хоть и меньшего размера :)<\/p>\n",
"date_published": "2019-05-13T16:30:57+03:00",
"date_modified": "2019-05-16T13:53:21+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/tmp-inputfield-mobile.png",
"_date_published_rfc2822": "Mon, 13 May 2019 16:30:57 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "165",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/tmp-inputfield-mobile.png"
]
}
},
{
"id": "164",
"url": "https:\/\/mopsicus.ru\/all\/node-js-game-server-unity-client\/",
"title": "Сервер на Node.js и клиент на Unity",
"content_html": " Задумал я тут выложить на Github свою очередную поделку — простой сервер на Node.js и клиента к нему на Unity. Много раз сам гуглил различные библиотеки, пробовал, тестировал, пытался сам написать что-то (с моими познаниями в Node.js :), но потом подсмотрел как сделано у старого китайского Pomelo<\/a>, который уже сто лет не поддерживается.<\/p>\n Если честно, когда я первый раз узнал про Pomelo и начал его изучать, то понял, что для моих текущих задач такой функциональности не требуется, поэтому решил выпилить всё что не нужно. В итоге, осталось вот что:<\/p>\n Опыта в Node.js у меня не очень много, поэтому я нагуглил такой фреймворк — Architect. Не знаю насколько это оправдано, но пока сделано с помощью него.<\/p>\n Чтобы «слушать» команды с сервера надо подписаться на команду (событие):<\/p>\n На RPC запросы с сервера можно подписаться также как и на обычные команды. Отличие в том, на них надо обязательно «отвечать».<\/p>\n На сервере каждая команда находится в отдельном файле и экспортируется, как-то так:<\/p>\n Протокол сообщений можно легко переделать, добавить шифрование или свой какой-то формат, можно посмотреть в репе Pomelo, у меня будет также примерно.<\/p>\n Для создания простой многопользовательской онлайн игры — этого достаточно. Это будет такая демка, когда можно взять сервер и клиент, запустить и сразу увидеть как оно работает. Код будет полностью доступен, так что умеющие в Node.js и C#, смогут переписать мои «костыли» на свои :)<\/p>\n После тестирования и «боевой» проверки на игре, если всё получится, думаю сделать небольшой курс, где опишу, как на основе такой базы делать несложные онлайн игры. Но замечу ещё раз — НЕ реалтайм!<\/p>\n Stay tuned.<\/p>\n",
"date_published": "2019-05-08T13:01:41+03:00",
"date_modified": "2019-05-08T19:10:25+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/nodejs-server-unity-client.jpg",
"_date_published_rfc2822": "Wed, 08 May 2019 13:01:41 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "164",
"_e2_data": {
"is_favourite": false,
"links_required": [
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css",
"system\/library\/highlight\/highlight.js",
"system\/library\/highlight\/highlight.css"
],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/nodejs-server-unity-client.jpg"
]
}
},
{
"id": "138",
"url": "https:\/\/mopsicus.ru\/all\/update-unity-mobile-input\/",
"title": "Обновление UnityMobileInput",
"content_html": " Теперь высота клавиатуры считается правильно везде и экран не сдвигается вверх при появлении клавиатуры. Это на Android такая история была.<\/p>\n Зарефакторил много старого кода, убрал не нужное, добавил кастомный инспектор, все настройки поля теперь берутся из Unity UI компонента InputField, клавиатура не пропадает если переключаться между полями и другие мелочи.<\/p>\n Напомню, что в Unity есть один нюанс при работе с пользовательским вводом на андроидах — появляется дополнительное поле ввода над клавиатурой. Оно, в общем-то работает, но с ограничениями (нельзя выделять текст и другие нативные штуки) и занимает место.<\/p>\n Вроде работает :) Был у меня старый скрипт для бесконечных списков в Unity<\/a>. Но там было одно ограничение — ячейки должны были быть одной высоты. Но сейчас это стало необходимо, поэтому пришлось переписать скрипт.<\/p>\nFinite state machine<\/h3>
Finite state machine<\/h4>
\n<\/div>\nfsm.Trigger(Action.Down);\r\nfsm.Trigger(Action.Down);<\/code><\/pre>\n
\non exit standing
\non enter sitting
\non exit sitting
\non enter lying<\/p>\n<\/blockquote>\nFSM UML diagram<\/h3>
FSM UML diagram<\/h4>
\n<\/div>\n@startuml\r\nskin rose\r\ntitle TestFSM\r\nleft to right direction\r\nagent Standing\r\nagent Sitting\r\nagent Lying\r\nagent Jumping\r\nnote left of Jumping\r\nsome help message here\r\nend note\r\nStart --> Standing\r\nStanding --> Sitting : Down\r\nStanding ~~> Jumping : Space\r\nSitting --> Lying : Down\r\nSitting --> Standing : Up\r\nLying --> Sitting : Up\r\nJumping --> Standing : Down\r\n@enduml<\/code><\/pre>Shardy<\/h3>
Shardy<\/h4>
\n<\/div>\n\n
\nShardy for Unity<\/a>
\nDocs<\/a><\/p>\n",
"date_published": "2024-10-10T22:33:59+03:00",
"date_modified": "2024-10-10T22:33:42+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/logo.png",
"_date_published_rfc2822": "Thu, 10 Oct 2024 22:33:59 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "267",
"_e2_data": {
"is_favourite": true,
"links_required": [],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/logo.png"
]
}
},
{
"id": "265",
"url": "https:\/\/mopsicus.ru\/all\/about-donates\/",
"title": "Про донаты",
"content_html": "UIS (Unity infinite scroller)<\/h3>
UIS (Unity infinite scroller)<\/h4>
\n<\/div>\nUMI aka Unity Mobile Input<\/h3>
UMI aka Unity Mobile Input<\/h4>
\n<\/div>\n\n
\n
\n
\n<\/div>\n<\/div>\n\n
\n
Infinite scroll unity 200 stars<\/h3>
Infinite scroll unity 200 stars<\/h4>
\n<\/div>\n<\/h3>
<\/h4>
\n<\/div>\n
\nСвершилось. В новой версии Unity 2019.1 допилили поле ввода (InputField) в TextMeshPro.<\/p>\n<\/h3>
<\/h4>
\nUPD<\/h3>\n
<\/h3>
<\/h4>
\n<\/div>\n\n
Команды (события)<\/h2>\n
public void TestCommand () {\r\n JsonObject param = new JsonObject();\r\n param["param"] = "value";\r\n _connector.Command("test-cmd", param); \r\n \/\/ _connector.Command("test-cmd"); \/\/ without params\r\n}<\/code><\/pre>public void TestCommand () {\r\n _connector.On("test-cmd", OnTestCmd); \r\n \/\/ _connector.Off("test-cmd", OnTestCmd); \/\/ unsubscribe\r\n}\r\n\r\nvoid OnTestCmd (JsonObject result) {\r\n if (_connector.IsError (result)) {\r\n \/\/ handle error\r\n return;\r\n }\r\n \/\/ handle result\r\n}<\/code><\/pre>Запросы (RPC)<\/h2>\n
public void TestRequest () {\r\n JsonObject param = new JsonObject();\r\n param["param"] = "value";\r\n _connector.Request ("test-rqt", param, (result) => {\r\n \/\/ handle answer\r\n }); \r\n \/\/ _connector.Request ("test-rqt", OnTestRequest); \/\/ without params\r\n \/\/ _connector.Request ("test-rqt", param, OnTestRequest); \/\/ callback in external method\r\n}\r\n\r\nvoid OnTestRequest (JsonObject result) {\r\n if (_connector.IsError (result)) {\r\n \/\/ handle error\r\n return;\r\n }\r\n \/\/ handle result\r\n}<\/code><\/pre>module.exports = function (commander, message, imports) {\r\n if (!validate(message.data, commander.protocol.log)) {\r\n commander.sendError(message, "invalid_data");\r\n return;\r\n }\r\n ...\r\n commander.sendResponse(message, { result: "ok" });\r\n};<\/code><\/pre><\/h3>
<\/h4>
\n<\/h3>
<\/h4>
\n
\nUnityMobileInput<\/a><\/p>\n",
"date_published": "2018-11-16T12:53:48+03:00",
"date_modified": "2018-11-16T12:54:22+03:00",
"image": "https:\/\/mopsicus.ru\/pictures\/unitymobileinput-inspector-old.png",
"_date_published_rfc2822": "Fri, 16 Nov 2018 12:53:48 +0300",
"_rss_guid_is_permalink": "false",
"_rss_guid": "138",
"_e2_data": {
"is_favourite": false,
"links_required": [],
"og_images": [
"https:\/\/mopsicus.ru\/pictures\/unitymobileinput-inspector-old.png",
"https:\/\/mopsicus.ru\/pictures\/unitymobileinput-inspector.png"
]
}
},
{
"id": "128",
"url": "https:\/\/mopsicus.ru\/all\/update-infinite-scroll\/",
"title": "Обновил Infinite Scroll",
"content_html": "