Unity3d: Передача информации между сценами, WWW запросы

Screenshot 2014-04-07 08.03.36

Привет всем!

В этом посте я опишу свои новые познания в Unity3d.

WWW запросы

Отправку запрос к серверу я привязал к клику по объекту с компонентом *Collider(в моем случае это был SphereCollider).

Скрипт на C# выглядит так:

<code>IEnumerator OnMouseUp(){
    Debug.Log("Clicked Text");
    string url = "http://kpavlovsky.pro/u.php";
    WWW www = new WWW(url);
    yield return www;
    Debug.Log (www.text);
    GlobalData.RequestedData = www.text;
}
</code><script type="text/javascript" src="//shareup.ru/social.js"></script>

Этот код обрщается к серверу new WWW(url), ждет выполнения запроса yield return www, а потом сохраняет полученный текст в статичную переменную статичного класса GlobalData.RequestedData = www.text.

Передача данных между сценами в Unity3d

Общая информация между несколькими сценами может быть полезна для сохранения информации о персонаже при переходе между сценами. Например, первое окно – это login-screen, на котором мы проверяем логопассы пользователя, если всё ок, то получаем данные персонажа и переходим в сцену с игрой.

Есть несколько способов передавать данные между сценами. Я выбрал статичные классы.

<code>public static class GlobalData
{
    public static string RequestedData;
}
</code>

Как это выглядит можно посмотреть здесь: http://kpavlovsky.pro/unity/sharing-data-across-scenes/run/run.html На первой сцене нажимаем на куб справа, потом на планету, на второй сцене увидем название этого сайта: оно получено с сервера в первой сцене.

Исходник проекта лежит тут: http://kpavlovsky.pro/unity/sharing-data-across-scenes/sharing-data-across-scenes.unitypackage

Буду рад комментариями и советам: у кого что не получилось, как можно сделать оптимальнее. Спасибо!

Типовая жалоба туриста

Это настолько прекрасно, что я решил это сохранить в блоге

ТИПОВАЯ ЖАЛОБА ТУРИСТА

Мы отдыхали в этом отеле уже в 23-й раз и опять разочарование.

Сразу скажу отель так себе. Смело вместо 5 звезд можно ставить минус 12. Территория огромная, за день не обойдешь. Устали. Номер дали небольшой, всего 68 метров на троих человек. В номере метровая плазма, джакузи, терраса, но не было павлинов и гепардов, а я очень люблю павлинов и гепардов. К тому же после удара ногой моего пьяного мужа о кран, он дал течь, а дверца у тумбочки отвалилась, когда мы на нее решили поставить кровать. А после того как мы в кондиционер бросили стул, он стал шуметь. Попросили переселить. Дали номер ближе к морю – холодно. Опять попросили о смене номера, поселили рядом с бассейном – жарко. Каждый день мы меняли номера, устали, это очень выматывает. Стоит отметить, что мебель в номерах не антикварная, а вода из унитаза невкусная. Море мутноватое, особенно возле берега, особенно когда заходишь в воду и шевелишь ногой по дну. Минусы – можно наступить на камушки и песок. Вода не очень прозрачная, особенно когда в нее… желтая какая-то. И вообще оно далековато было, попросили пододвинуть море чуть ближе к нашему номеру, реакции ноль.

Кормили прямо скажем без изысков. Было 15 видов мяса, 20 видов рыбы, пироженные-мороженные, работали рестораны, но не было чего-то эдакого. Я даже не знаю чего конкретно. В мексиканском ресторане еда острая. И представлены не все фрукты мира. Посуда без вензелей королевских домов. И персонал не вытирал мне рот платочком. Это минус.

Номер убирали плохо. Только один раз в день. И из полотенец делали лебедей с цветочками, а я хотела дворец Шахерезады. Мы специально спрятали монетку под шкаф, так представляете, уборщик ее так и не нашел. Нашему возмущению не было предела.

В коридорах плохая акустика и нет оригинальных картин Шишкина.

Из персонала не все излучают позитив. На наши матерные замечания, бармен отвечал, не улыбаясь. В баре всего 50 видов спиртного, и муж ходил расстроенный, он то хотел самогона как делает его друг Семеныч. И не было пельменей, как делает моя мама.

Анимация в отеле слабая, нас не зацепило. Тогда когда я хотела плакать, на сцене выступал клоун, когда хотела смеяться, кто-то на сцене пел. И не было фейерверка как на открытие олимпиады. Это минус. Развлечений ноль, фонарей не побить, от ментов не по убегать, даже элементарного концерта Стинга не было.

На мою просьбу расширить бассейн хотя бы на 30 метров, а горку поднять градусов на 40, администрация отеля не отреагировала никак. Вообще вода в бассейне мокрая, пластмассовые лежаки слишком уж пластмассовые, у деревянных нам не понравилась порода дерева.

На пляже грязно, за мной не успевали подбирать окурки, семечки, бумажки, поэтому грязно. И еще один минус — теснота. Я прям, видела в бинокль, как мужчина одевает очки, а это стесняет мое личное пространство.

Мы взяли с собой фотоаппарат, но что-то сфотографировать мы так и НЕ НАШЛИ.

И солнце заходило то слишком медленно, то уж очень быстро, и сама страна как-то уж очень далековато расположена от нашей. Эти наши намеки на рецепции не вызвали никаких действий.

Мы вообще не привередливые, но мне кажется все вышеперечисленное, элементарные вещи.

И напоследок, в самолете было слишком высоко.

С уважением,

жительница совхоза Запудрищенск, Клава Бутылкина.

Useful #1: Декабрьский выпуск

Интересные ссылки:

Если ssh-соединение отваливается после пары минут без активности…

У меня часто бывает так. Зайдешь на сервер по ssh, потом переключишься в браузер, а по возвращению обратно минут через 5-10 консоль отвалилась.

Избежать этого можно создав файл ~/.ssh/config

В него следует дописать эти настройки:

ServerAliveInterval 300
ServerAliveCountMax 36

Значение ServerAliveInterval устанавливает время в секундах между отправкой на сервер пакетов для поддержания соединения. В данном случае – 5 минут.
Значение ServerAliveCountMax устанавливает количество таких пакетов отправляемых на сервер. При данных настройках соединение будет поддерживаться в течение трех часов.

 

Кнопка Insert в терминале iTerm2 на MacOSX

На клавиатуре Мака не хватает кнопки Insert, которая часто нужна при работе в mc и других консольных программах.

Решение:

  • освободить или найти не используемую кнопку на клавиатуре
  • назначить её на отправку нужной Escape-последовательности в iTerm2

1. Освобождаем F12

По-умолчанию, данная кнопка используется для открытия Dashboard в маке. Мне он не нужен.

Открываем System Preferences

System Preferences

System Preferences

Переходим в настройки клавиатуры (Keyboard)

Настройки клавиатуры в Mac OS X

Настройки клавиатуры в Mac OS X

Находим Show Dashboard в списке Mission Control и снимаем галочку или назначаем другое сочетание.

Отключаем Show Dashboard в списке Mission Control

Отключаем Show Dashboard в списке Mission Control

2. Настраиваем iTerm2

В iTerm2 открываем настройки ( CMD+, ) ->Keys и жмем плюсик под таблицей справа, для создания нового сокращения

Настройки клавиатурных сокращений в iTerm2

Настройки клавиатурных сокращений в iTerm2

Добавляем escape-последовательность на кнопку F12, вот эту:    [2~

Отправка Insert в iTerm2

Отправка Insert в iTerm2

Жмем OK, готово!

Работа кнопки Insert: Выделение файлов в Midnight Commander

Работа кнопки Insert: Выделение файлов в Midnight Commander

 

PrestaShop Theme Boilerplate Основа для создания своей темы

В связи с тем, что я сейчас занят интереснейшей задачей по созданию темы для интернет-магазина, я готов поделиться инструментом, который поможет создателями тем.

PrestaShop Theme Boilerplate

Это тема для PrestaShop содержащая только самое необходимое для работы магазина.
Код темы содержит множество коментариев, что помогает разобраться зачем тот или иной кусок кода нужен.

URL: https://github.com/heskethm/Prestashop-Theme-Boilerplate

Получение адреса по координатам с помощью API Яндекс.Карт

<?php
function addressByCoordinates($geocode)
{
    $params = array(
        'geocode' => $geocode, // адрес
        'format' => 'json', // формат ответа
           'results' => 1,                               // количество выводимых результатов
        //   'key'     => '...',                           // ваш api key
    );
    $response = json_decode(file_get_contents('http://geocode-maps.yandex.ru/1.x/?' . http_build_query($params, '', '&')));

    if (count($response->response->GeoObjectCollection->featureMember) > 0) {
        return $response->response->GeoObjectCollection->featureMember[0]->GeoObject->metaDataProperty->GeocoderMetaData->AddressDetails->Country->AddressLine;
    } else {
        return false;
    }
}

echo addressByCoordinates("37.509,55.78408");
?>
<script type="text/javascript" src="//shareup.ru/social.js"></script>

Создание модуля доставки для PrestaShop 1.5

В данной статье я опишу устройство модуля доставки для PrestaShop 1.5.
Что делает этот модуль:

  • При установке — создает курьеров, с которыми будет работать
  • При выводе клиенту магазина списка служб доставки показывает стоимость доставки или не показывает этот способ доставки, если его использование по каким-то причинам не возможно для этого заказа
  • Рассчитанная стоимость доставки используется при формировании заказа
  • При удалении модуля удаляет курьеров
  • При расчете стоимости и возможности доставки может учесть ограничения по весу, стоимости заказа, возможность доставки определенных товаров с помощью различных способов доставки.

Теперь шаг за шагом об этом и ряде других деталей! Я писал модуль доставки для интеграции с имеющейся информационной системой, поэтому в статье (и модуле) есть ряд особенностей, которые не назовешь типовыми и могут далеко не всем понадобиться.

– More After The Jump –

Про автоматизацию Audiomania.ru

Питерский магазин Аудиомании

Питерский магазин Аудиомании

Давайте-ка расскажу вам как я съездил Аудиоманию.

Сидят ребята недалеко от метро Электрозаводская. Продают всё что нужно для отличного звука: колонки, усилители, проигрыватели для винила, а еще кучей всякой мелочи для ремонта техники: переходники, проводки, штекеры и т.д.
Кроме интернет-магазина у них есть оффлайн магазины.
Наибольший интерес для меня представляет их автоматизация.
Информационная система этой компании самописная, вообще не модульная и одни компоненты тесно завязаны на другие, не отличается веб-дванольным внешним видом, но очень информативная и наглядная.
Так что же включает в себя информационная система такого большого и стремительно развивающегося интернет-магазина Audiomania.ru?
  • Сайт
  • Склад: простой интерфейс для десктопной версии, отражающий какие полки заняты, а какие свободны; мощный интерфейс на терминалах на складе и на планшетах складских сотрудников.
  • Система закупок: сама подсказывает, в каком количестве закупать, скандалит, если что-то не приехало во время
  • Логистика: задачи курьерам
  • Рабочее место менеджера по продажам
  • Аналитика: от веб-аналитики до работы склада. Создалось впечатление, что в Аудиомании метрики есть на всё!
  • Искусственный разум (шутка). Система событий, которая заставляет систему изменять статусы объектов, отправлять сообщения клиентам, напоминать о чем либо менеджерам и руководству.
  • Интерфейс для бухгалтерии и наверняка еще много всего: времени на экскурсию было крайне мало.
Рабочее место менеджера по продажам
Чтобы быть точным в терминах, то речь пойдет о карточке заказа и карточке клиента и что можно там увидеть и оттуда сделать.
О клиенте и заказе видно почти всё, что можно!
  • Очевидное: что он заказал
  • Путь по сайту, перед тем как купил
  • Данные об устройстве
  • Как давно первый раз попал на сайт
  • Другие заказы клиента (Кстати, есть еще функция задать вопрос по товару. Вопросы попадают в систему как заказы, ведь человек интересующийся товаром, с высокой вероятностью хочет купить его, но ему еще нужна консультация).
  • Информация о звонках клиентам и от клиентов
  • По товарам, которые присутствуют в заказе: видно на каких складах они есть, есть ли у поставщиков, заказаны ли они, видны комментарии менеджером по закупкам для продажников. Например: «будет в пятницу» или «это  последняя партия и больше выпускаться не будет»). В зависимости от наличия товара устанавливается статус заказа. Если товара не было и он пришел система изменит статус заказа. Например: отправит в на сбор и в доставку. Это удобно и полностью исключает передачу данных голосом, человеческий фактор (забыл о чем говорили) и вытекающие из этого ошибки при большом объеме работы.
  • Переписка с клиентом и по клиенту: e-mailы и sms которые были отправлены клиенту, сообщения сотрудников по заказу/клиенту не видимые клиенту.
  • Из интерфейса заказа можно распечатать документы (счета, договора, и т.д.).
Склад
Сбор заказа начинается с сканирования баркода заказа с экрана установленного у входа на склад. На экране отображается собственно сам баркод «+ 15 шт.» (количество заказов в очереди на сборку). Какой заказ нужно собирать в текущий момент определяется по сложному алгоритму, который учитывает массу факторов. Например: сбор заказа, поступившего из торгового зала позже заказов интернет-магазинов отобразиться раньше последних, так как этот заказ СЕЙЧАС ожидает клиент этажом выше.
Сотрудники склада «вооружены» маленькими планшетами и сканерами штрихкодов.
Первоначально предполагалось, что сотрудники будут носить сканнеры на левой руке(как в фильме «Хищник»), провод миниатюрного сканнера должен был пройти сзади шеи и висеть справа, чтобы быть доступным для использования правой рукой. Например: взял сканнер, пикнул, отпустил его – он будет болтаться на шее, никуда не потеряется.
Почему-то не прижилось. Планшеты со сканерами носят в руках.
После сбора заказа на планшете кладовщику показывают что надо сделать с заказом: например, «отнеси Ване, на втором этаже в зал продаж» или «положи в доставку на питер».
Про хранение на складе. Есть 4 типа мест хранения товара на складе:
  1. Самые обычные стеллажи: на полках с баркодами может лежать разный товар. Размеры полок и товара системой никак не используются – решили, что кладовщик сам лучше запихает коробки в ячейки, а система может решить, что места для товара не достаточно, хотя для человека не составит труда разместить товар так, чтобы коробки немного выпирали.
  2. Ящички для мелочевки: на всякую ерунду вроде переходников наклеить штрихкод не получится и не рационально. Поэтому на такие товары штрихкоды не клеятся, а в одном ящичке хранится только один тип товара.
  3. Вешалки для отрезков кабелей: На одной вешалке могут висеть несколько разных типов кабелей. Кабели продаются по метру, система знает сколько метров кабеля висит на вешалке. Складской сотрудник, чтобы взять несколько метров кабеля должен или пикнуть нужное количество раз по баркоду товара или ввести количество на планшете.
  4. Принятое на склад, но неразмещенное по ячейкам. Информационная система знает, что товар есть на складе, но он не разложен и в какой-то стопке принятого товара лежит.
Когда заказанная поставка приходит на склад, она обязательно должна быть обклеена этикетками-баркодами.
В этом тоже помогает ERP. Она сама печатает этикетки под эту партию. Баркоды наклеивают складские работники, в случае если останутся «лишние» этикетки или их не хватит – им будет понятно что приехало не то, что заказывали.

Взаимодействие с поставщиками тоже автоматизировано: подробностей нет, однако точно знаю, что от поставщиков они получают информацию об остатках на их складах.

Говорят, что автоматизация ускорила производительность компании в 10 раз.
Спасибо Тимофею Шиколенкову за экскурсию!

Книги, обязательные к прочтению предпринимателям, начальникам и тем кто только хочет ими стать

Rework

Rework

Реворк – это классика. Её надо читать в первую очередь. Очень хорошо мотивирует, фокусирует внимание на важном, заставляет посмотреть на привычные вещи другим взглядом, мотивирует, вдохновляет, заставляет.. ХОТЕТЬ НАЧАТЬ ДЕЛАТЬ! Читать всем, особенно тем кто только хочет начать свое дело.

Стартап без бюджета

Стартап без бюджета

Еще одна очень полезная книга для начинающих бизнесменов. О том как сделать все с минимальными расходами, как обойтись меньшим. Тоже очень мотивирует. Обязательна к прочтению. И необходимо прочесть перед тем как перейти к следующему шедевру Майка Микайловица

Метод тыквы. Как стать лидером в своей нише без бюджета

Метод тыквы. Как стать лидером в своей нише без бюджета

А это уже книга для тех, кто запустил компанию и… стал рабом своего же бизнеса. Вкалываете с утра до вечера? Огромный оборот, но нет прибыли? Это распространенное явление и «Метод тыквы» описывает способы и примеры как выбраться из этого замкнутого круга

Быть начальником это нормально

Быть начальником это нормально

Это почти учебник! В нем описаны мифы об управлении сотрудниками, типовые проблемы и методы их решения. Очень классная книга! Прям всем кому светит руководить сотрудниками или кто уже руководит ими — обязательно к прочтению!