Главная » Статьи » Программирование |
В разделе материалов: 37 Показано материалов: 1-10 |
Страницы: 1 2 3 4 » |
Статья про эксперимент в котором проводились попытки запуска PHP кода, представленного в виде строки. Необходимость реализации данного действия появилась, когда оптимальным результатом одной из операций разрабатываемой системы было хранение в базе данных заготовок php кода, который выполняет определенные действия в зависимости от того, что должно происходить. Возникли некоторые сложно, но результатов добиться удалось, пусть и не тех на которые рассчитывали. В PHP при использовании при использовании в коде "require_onc"e файл подключается к текущему и становятся доступны класс и методы из этого файла. Допустим есть сценарий при этом мне заранее не известно название файла и я его подключаю в коде (название файла, например, получено из базы данных или текстового файла с диска или загружено из интернета в процессе исполнения основного кода). В этом случае можно исполнить "require_once" и функции и класс из подключенного файла можно использовать. Допустим у меня есть несколько неизвестных файлов и я их подключаю в цикле в зависимости от того что мне нужно сделать и каждый файл содержит группы методов включая тот который будет вызываться в процессе исполнения цикла и этот метод в этих файлах назван одинаково. Как в таком случае поведет себя программа? |
Ранее я уже писал про организацию очереди объектов, которую использовал при спавне противников в игре и прочих объектов. Сейчас немного подумав я решил улучшить эту систему и попытаться создать наиболее универсальный вариант очереди + разумеется ускорить скрипты из предыдущей статьи (ссылка). |
В большинстве игр есть два важных моменты, которые касаются камеры:
Обычно скрипт, который отвечает за выполнение данного действия, лучше поместить на объект за которым следует основная камера потому, что ее удобно получить через “Camera.main”. Первое что нужно сделать - получить размеры нашего экрана в мировых координатах (если в вашей игре изменяется масштаб, то эти данные нужно будет пересчитывать каждый раз при изменении масштаба).
|
Как мы все знаем во многих играх разработчикам выбирают для проведения боя пошаговую систему. Такая система пользуется популярностью в пошаговых играх, например, серия игр герои. Я разумеется не буду рассматривать весь механизм работы пошаговой игры, такие моменты как переход от “обычного” режима в режим боя. Все это реализовать будете вы, так как в каждой игре это все выглядит по своему и написать один уникальный скрипт не получится. Хотя, если там будет куча странного кода, то получится, но производительности это не добавит. |
Вы можете использовать способ, описанный в этой статье в случае, если в вашей игре враги или что вы там спавните не уничтожаются после смерти при помощи GameObject.Destroy(gameObject), а просто выключается gameObject.SetActive(false). Очередь объектов представляет собой список объектов или массив как вам удобнее, который увеличивается или уменьшается в зависимости от текущей ситуации и требований других объектов в игре (например, триггер, который говорит, что тут необходимо заспавнить врага. |
Как не дать объекту выйти за границы экрана или наоборот определить, когда враг появляется в пределах видимости? Последнее конечно проще узнать, проверив видимость Render с помощью функции renderer.isVisible. Очень часто в играх встречается ситуация, когда при управлении персонажем он может вылететь за границы экрана. Это может случиться даже в том случае, если вы установили барьеры по границам, которые недавно добавили в Unity, но объект может просто пролететь сквозь барьер, у меня таких случаев было не мало, когда я решил использовать эти барьеры на границах экрана. Поэтому предлагаю использовать способ, который я очень применяю в своих играх... |
Для создания файла используется класс QFile. При возникновении сложностей с созданием файла может помочь класс QDir. |
В настоящие время в Unity есть рекламная сеть Unity Ads, которая работает на последних версиях Unity из коробки, но кому-то может показаться этого функционала мало. Самым лучший вариант - использовать функционал рекламы от Google (Google AdSense для сайтов и Google Admob для мобильных приложений и игр), которое уже хорошо себя зарекомендовала как среди вебмастеров так и среди разработчиков мобильных приложений (не только Android). Во-первых, нам нужно зайти на https://www.google.ru/admob, зарегистрироваться, добавить наше приложение в список. Как это делать я расписывать не буду, здесь ничего сложного нет. И так мы зарегистрировали свое приложение в admob. У нас есть идентификаторы рекламных блоков. Теперь можно приступить к интеграции admob в наш проект unity. |
Обычно при работе с приложениями может использоваться несколько активных окон приложения, один из них главное, то которое отображается при открытии приложения, не считая приложения с окном авторизации, если таковое первым отображается при запуске. Если мы дополнительные окно открываем как QDialog, то тут все понятно, но если используем QWidget или QMainWindow, то тут совсем другое дело. Если открыть окно, наследуемое от QWidget, а потом закрыть окно из класса, которого мы его открыли, то открытое окно не закроется и будет продолжать работать. |
В каких случаях полезно применять очередь объектов вместо их уничтожения? Часто очереди применяют к снарядам (пулям, патронам), другими словами объектам у которых короткая жизни, но и которые требуются регулярно. В таких случаях очень неразумно использовать Destroy и потом заново создать копии объекта из префаба это отнимает много ресурсов и может замедлить игру. |