Обновить
32K+

Unity *

Инструмент разработки 2D/3D-игр

14,85
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Unity3D и MySQL

Время на прочтение2 мин
Охват и читатели22K
Наверное каждый, кто делал игру для социальной сети или просто онлайн игру сталкивался с проблемой подключения и сохранения данных в базу данных. В этой статье я постараюсь подробно описать как установить подключение и передать данные в базу данных MySQL с помощью PHP.

Итак, приступим, для начала создайте в Unity C# скрипт, назовите его MysqlConnect и внесите в него следующий код:

using UnityEngine;
using System.Collections;

public class MysqlConnect : MonoBehaviour {

	private string username = ""; //Переменная для хранения имени
	private string pswd = ""; //Переменная для хранения пароля
	private string email = ""; //Переменная для хранения почтового ящика
	private string url = "http://www.localhost.ru/habr/connect.php"; //Переменная для хранения адреса
	
	//Создание метода, отвечающего за подключение и передачу данных
	void Connect()
	{
		WWWForm form = new WWWForm(); //Создаём новую форму 
		//Добавляем в форму новые данные
		form.AddField("username", username);
		form.AddField("password", pswd);
		form.AddField("email", email);
		//Создаём новое подключение
		WWW connect = new WWW(url, form);
		//Если удалось установить подключение
		if (connect.isDone)
		{
			//Выводим в консоль ответ сервера
			Debug.Log(connect.text);
		}
		//Если при подключении возникла ошибка
		else if (connect.error == null)
		{
			//Выводим в консоль текст Error
			Debug.Log("Error");
		}
	}
	
	//Создаём метод OnGUI()
	void OnGUI()
	{
		//Создаём текстовое поле для ввода имени пользователя
		username = GUI.TextField(new Rect(Screen.width/2-100, Screen.height/2-100, 200, 20), username, 12);
		//Создаём текстовое поле для ввода пароля
		pswd = GUI.TextField(new Rect(Screen.width/2-100, Screen.height/2-75, 200, 20), pswd, 12);
		//Создаём текстовое поле для ввода почтового ящика
		email = GUI.TextField(new Rect(Screen.width/2-100, Screen.height/2-50, 200, 20), email, 50);
		//Создаём кнопку для произведения подключения
		if (GUI.Button(new Rect(Screen.width/2-100, Screen.height/2-25, 200, 20), "Connect"))
		{
			Connect();
		}
	}
}


В данном скрипте производится запрос к PHP скрипту и ему передаются данные, введённые пользователем.
Читать дальше →

Бесконечные неповторяющиеся текстуры с помощью мозаики Вана

Время на прочтение4 мин
Охват и читатели49K


С текстурами вечно какие-то проблемы! То оказывается, что нельзя взять любую фотку и налепить на модельку. То на стыке текстур появляются швы, которые замучаешься заглаживать. То вроде уже и загладил всё, но глаз, этакий проказник, всё равно замечает повторяющиеся узоры и рушит иллюзию.

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

Как же быть? Есть один трюк — непериодические мозаики. Они лишены проблемы повторяемости и достаточно просты в реализации. Одну из таких мозаик придумал китайский математик Ван Хао в 1961 году. Элементы этой мозаики можно представить в виде прямоугольников с разноцветными гранями. Но чтобы понять принцип её работы, надо сначала разобраться в классическом методе заполнения площадей текстурами.
А классический метод таков...

Брезенхем и У на страже диагоналей

Время на прочтение4 мин
Охват и читатели106K


На что вы сейчас смотрите? Если вы не из параллельной вселенной, где все сидят за векторными мониторами, то перед вами растровое изображение. Поглядите на эту полоску: /. Если придвинуться поближе к монитору, то можно увидеть пиксельные ступеньки, которые пытаются притвориться векторной линией. Для этой цели существует целая куча всевозможных алгоритмов растеризации, но я бы хотел рассказать об алгоритме Брезенхема и алгоритме У, которые находят приближение векторного отрезка в растровых координатах.

С проблемой растеризации мне довелось столкнуться во время работы над процедурным генератором планов зданий. Мне нужно было представить стены помещения в виде ячеек двумерного массива. Похожие задачи могут встретиться в физических расчётах, алгоритмах поиска пути или расчёте освещения, если используется разбиение пространства. Кто бы мог подумать, что знакомство с алгоритмами растеризации однажды может пригодиться?
Принцип работы алгоритма Брезенхема очень простой...

Каверзные кватернионы

Время на прочтение3 мин
Охват и читатели190K


Отгадайте загадку: в четырёх измерениях сидит и комплексными числами воротит?

Подсказка: это вектор со скаляром. И вещественная матрица. И придумал его Гамильтон.

Не помогло? Ну что вы, это же элементарно! Это кватернион! Кватернионы используют для записи вращений в робототехнике, игровых движках, ПО для моделирования и вообще везде, где не нужны проблемы с углами Эйлера или матрицами. Если вас испугала путаница выше с разными представлениями кватерниона, то можете быть спокойны. Кватернионы очень просты в использовании и их внутреннее строение может понадобиться только в очень редких случаях, где нужна тонкая оптимизация. В остальное время с помощью кватернионов можно крутить всё что угодно и как угодно, и оно будет плавно и красиво интерполироваться без шарнирных замков.
Что же такое кватернион?

Кручу-верчу, запутать хочу: углы Эйлера и Gimbal lock

Время на прочтение3 мин
Охват и читатели138K


Выставите любой палец левой руки вперед. Давайте, не стесняйтесь, никто не будет над вами смеяться. Это нужно для важного эксперимента. Выставили? Теперь представьте что вы — это ваш палец (ну и бред). Повернитесь под прямым углом направо, затем наверх, и наконец налево. Где вы оказались? Правильно, в том же месте, но уже на спине.

С некоторой натяжкой именно так работает вращение с помощью углов Эйлера. Немного непредсказуемо и неудобно, не правда ли? Углы Эйлера имеют несколько недостатков, но есть одно особенно нехорошее свойство из-за которого вы не захотите с ними связываться. Его имя — Gimbal lock.

В русском языке gimbal lock называют по-разному: шарнирный замок, блокировка осей, складывание рамок. К сожалению, по запросам в поисковике с такими ключевыми словами выдаётся много мусора, а статья в Википедии оставляет желать лучшего, поэтому я сам расскажу вам об этом феномене и предложу как с ним бороться.

Внимание! Заходя под кат вы подвергаетесь риску поломать голову.
Ха! Я ничего не боюсь! Где этот gimbal lock?

Real-time дебаг Android и iOS приложений на Unity

Время на прочтение6 мин
Охват и читатели21K
Когда разработка проекта идёт на компьютере, проблемы просмотра лога не встаёт. Но когда начинаешь разрабатывать на планшете, то всё становится гораздо печальнее. Разработчики движка добавили много разных полезных вещей в профайлер, но к сожалению забыли о простой консоли, чтобы переключившись на её вкладку разработчик мог смотреть сообщения от своей игры и отправлять какие-то консольные команды прямо с компьютера на планшет.
Это упущение мы сейчас и будем исправлять.
Читать дальше →

Spatial hashing для самых маленьких

Время на прочтение5 мин
Охват и читатели45K


Spatial hashing это простая техника, которая используется в базах данных, физических и графических движках, симуляциях частиц и вообще везде, где нужно быстро что-то найти. Если в кратце, то суть в том, что мы разбиваем пространство с объектами на ячейки и складываем в них объекты. Затем вместо поиска по значению очень быстро ищем по хэшу.

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

Оптимизируем Boid'ов на Unity

Время на прочтение9 мин
Охват и читатели22K


Знаете ли вы, что кузнечики, будучи брошенными в ведёрко, начинают маршировать по кругу как на картинке выше? Правда сверху не кузнечики, а Boids — модель коллективного поведения птичек, пчёлок, рыбок и другой живности. Несмотря на простоту модели, она демонстрирует эмерджентные свойства: боиды собираются в кучу, летают стаями по кругу, нападают на людей.

Это вторая часть статьи, посвящённая различным хитростям оптимизации Unity и C#, которые увеличивают производительность алгоритма из первой части в пару десятков раз.
Хитрости под катом

Как создать простую Tower Defense игру на Unity3D, часть вторая

Время на прочтение9 мин
Охват и читатели71K
Здравствуйте! Весьма надолго у меня растянулась подготовка материала (жизнь давала изрядных пинков под зад), но вот я справился и готов поделиться продолжением первой статьи с вами.

Часть первая


Неудачный тест физики

В этой части мы:
— оптимизируем код из предыдущей статьи;
— создадим объект «база» и научим её чиниться время от времени;
— добавим пушкам патроны и перезарядку;
— избавимся от «неудобной» переменной gv;

А в конце статьи вас ожидает маленький бонус :)

Всем заинтересовавшимся — добро пожаловать под долгожданный кат!
Читать дальше →

Boid'ы, птички и Unity3D

Время на прочтение10 мин
Охват и читатели51K


Вторая часть: Оптимизируем Boid'ов на Unity

Задумывались ли вы когда-нибудь о то, почему птицы летая большими стаями никогда не сталкиваются и не коллапсируют в огромный галдящий перьевой ком? Хм, если подумать, это было бы круто. В любом случае, однажды в 1986 нашёлся человек по имени Крейг Рейнольдс, который решил создать простую модель поведения птиц в стаях и назвал её Boids. В модели у каждого боида есть три базовых правила: Separation, Alignment и Cohesion. Первое заключается в избегании столкновения с соседями, второе заставляет лететь примерно в ту же сторону что и соседи, а третье говорит не летать в одиночку и держаться группы. Эти простые правила позволяют создать правдоподобные стаи птиц, рыб и другой живности, чем и пользуются в кино и игровой индустрии.

В статье я расскажу как можно реализовать эту модель на практике. Для разработки я использую Unity и C#, но большинство вещей верны для других движков и языков. В этом туториале я не разжёвываю основы работы с Unity, подразумевается, что вы знаете эффект комбинации Ctrl+Shift+N на сцене, умеете работать с инспектором, дублировать и двигать объекты. Если нет, то советую начать с этой статьи. Или можете просто посмотреть на картинки.
Прошу-с проследовать под кат, только после вас!

Вечера гейм девелопмента в Петербурге с Unity Technologies

Время на прочтение2 мин
Охват и читатели5K
Краткий анонс: наш маркетинг-тим согласился, что слишком мало внимания уделяется русскоязычному комьюнити. Теперь изобретаем соответствующие процессы. Надеюсь, все получится :) А теперь о событиях следующей недели…

Вечера гейм девелопмента в Петербурге с Unity Technologies


Продолжая добрую традицию небольших и уютных мероприятий для игроделов Петербурга предлагаем следующую инициативу.

Три вечера подряд с 18:00 и до 21:00 в «Циферблате» можно будет найти технического специалиста компании Unity Technologies Олега Придюка. Он с удовольствием ответит на технические и безнес-вопросы про разработку игр, про использование движка Unity, про тренды мирового рынка, посмотрит Вашу игру и предложит советы по ее улучшению.
Читать дальше →

Unity3d + SQLite

Время на прочтение4 мин
Охват и читатели49K
Это будет практическое руководство по использованию SQLite в Unity3d. Я расскажу что это такое, для чего может потребоваться, как реализовать и порекомендую инструменты для удобной работы. Статья ориентирована на начальный и средний уровни. В конце Вас ждёт небольшой бонус. Всем заинтересованным добро пожаловать под кат.
Мне интересно

Ближайшие события

История плохого старта на Google Play

Время на прочтение5 мин
Охват и читатели124K

Хотел бы с Вами поделиться опытом создания своей первой мобильной игры. Весной 2012 года глядя на аркадные «мотоциклы» своего знакомого, которые занимали верхние места в рейтинге Google Play, загорелся тоже сделать нечто подобное. Выбор пал на зомбодавилку, таких игр целая масса, но я думал выделиться полноценной 3d графикой, гаражом с возможностью прокачки техники. Опыт создания игр на движке Unity3d уже был, но под мобильные устройства делал впервые. Разумеется, делал не сам, а с художником, в свободное время.
Читать дальше →

Unity для iOS и Android теперь бесплатно для инди разработчиков

Время на прочтение1 мин
Охват и читатели47K
Хорошая новость для инди разработчиков игр под мобильные платформы. Возможность паблишить из Unity под iOS и Android тепрь бесплатна.

Стоит уточнить что бесплатно отдают только base лицензию, которая стоила 400$ для каждой платформы. Если вы заинтересованы в дополнительных возможностях, таких как динамические тени, рендеринг в текстуру, пост процесс и некоторые другие, то вам всё таки придётся купить Pro лицензию, которая стоит 1500$.
Читать дальше →

Пусть будет Unity в Вашем городе

Время на прочтение2 мин
Охват и читатели6K
Друзья, некоторое время назад у меня получилось выбить бюджеты и внимание к русскоязычному комьюнити. Наглядные результаты —


Планируется ещё больше: мероприятия в Москве, Минске, Петербурге, Калининграде; активно работаем над курсами по Unity с частными школами и вузами.
Читать дальше →

Про Unite Nordic и мотивацию

Время на прочтение1 мин
Охват и читатели4.4K


Разработчики игр любят ездить на разные конференции, чтобы набраться опыта, посмотреть на чужие проекты, попиарить свои, найти паблишера, или наоборот, найти проекты, команды… Работа, фан и общение, в общем.

По похожей формуле с 2007 года Unity проводит ежегодную конференцию Unite в разных частях света. До 2013 года Юнайт был один, теперь мы решили в каждой части света делать свою конференцию. Для Европы — это Unite Nordic, который пройдет сразу после КРИ, с 21 по 22 мая в шведском городе Мальмё, который находится недалеко от аэропорта Копенгагена. Билеты стоят около 230 USD для взрослых и 76 USD для студентов.

Зачем ехать на Unite Nordic?


Читать дальше →

Unity3d прекращает поддержку Flash

Время на прочтение1 мин
Охват и читатели25K
Команда Unity приняла сложное решение по отказу от Flash. Как следствие, прекращается продажа лицензий под эту платформу, поддержка остается для 4.x.

Названы следующие причины:

  • Нет уверенности, что Adobe будет развивать Flash. Об этом говорит отмена разработки Flash Player Next, нестабильность последних сборок, переброс сотрудников Adobe с Flash Player на другие проекты.*
  • Подорвано доверие как у разработчиков, так у команды Unity к Flash из-за введения, а после отмены модели распределения доходов (Stage3D + FastMemory). Отныне платформа более не может считаться надежной и постоянно развивающейся.
  • Разработчики постепенно отходят от Flash, в то время как у Unity Web Player наблюдается беспрецедентный рост в последние месяцы.

* Видимо имеется ввиду переход тимлида флеша Thibault Imbert на развитие Web Platform.

Дистанционный курс по Unity и Modo от render.ru

Время на прочтение2 мин
Охват и читатели17K
Как научиться пользоваться Юнити и как начать делать игры? На самом деле этот вопрос мы слышим редко. Гораздо чаще мы слышим примерно следующее: «привет, мне 14 лет и я хочу сделать ММО с Юнити. Как?!».
И знаете, отвечаем…

В то же время гейм девелоперам с более осязаемыми амбициями я бы предложил обратиться к новому разделу на сайте Юнити — Unity Learn. За ним следит и активно его развивает замечательная команда во главе с автором бестселлера Will Goldstone.

И самое главное — мы всеми силами поддерживаем образовательные инициативы на базе Юнити. Потому рады представить — Дистанционный курс «Интерактивный персонаж (Unity + Modo)» от render.ru


Читать дальше →

Как отправить email с Android-устройства из приложения Unity, не написав ни строчки кода на Java

Время на прочтение5 мин
Охват и читатели11K
Часто разработчики добавляют в приложение возможность отослать письмо другу с ссылкой на приложение. Обычно это возможно сделать штатными средствами конечной ОС. При портировании нашего приложения на Android мне пришлось потратить некоторое время, чтобы добавить эту функциональность. В последний раз я работал с языком Java лет 5 назад, и мне не хотелось лезть в дебри написания Android-плагина для Unity, установки Eclipse, сборки jar-файла, настройки AndroidManifest.xml и тд. Мне удалось это сделать на C#, не написав ни строчки кода на Java (если не считать в комментариях). Хочу поделиться с Вами, как я это сделал, чтобы Вы не тратили свое время. При этом указанный в статье метод можно использовать для вызова любого Java-кода.

Читать дальше →