Unity урок 1
Unity3D. Создание RPG. Урок 1. Создание меню
1. Создаем меню с летающей камерой аля Far Cry.
2. Персонаж. Движение и управление. Камера. Меняем позицию и вид камеры.
3. Статы. Часть первая. Опыт, деньги.
4. Квесты.
5. Ai. Искусственный интеллект. Часть первая. Покупка персонажа.
6. Статы. Часть вторая. Жизни, манна. Рисуем HP и MP бары.
7. Ai. Искусственный интеллект. Часть вторая. Мобы.
8. Инвентарь. Магазин.
План может дополняться и изменятся.
Урок 1. Меню с летающей камерой аля Far Cry.
В этом уроке мы узнаем основы создания сцен в Unity3D. Узнаем некоторые стандартные возможности и некоторые дополнительные.
Использовано:
1. Terrain Toolkit http://yadi.sk/d/NECQRcVaCEKuT
2. Nature Pack http://yadi.sk/d/m8Qu8ts2CEKyB
3. Real Nature Pack 2 Autumn v2 http://yadi.sk/d/A4IN7tuMCELA3
4. Tropical Nature Pack http://yadi.sk/d/lTMMWzC4CELCf
План:
1. Создание проекта. Импорт необходимых библиотек.
2. Генерация ландшафта. Редактирование.
3. Освещение. Камера.
4. Анимация камеры(полет).
5. Создание меню.
Создание проекта. Импорт необходимых библиотек.
Запускаем Unity. В «Project wizard» переходим во вкладку «Create New Project». В «Import the following packages» выбираем следующие паки: Skyboxes, Terrain Assets, Water(в зависимости от версии unity3d, я выбрал pro)
Заходи в «Assets>>Import package>>Custom package» и переходим в папку где у вас лежат скачанные паки. Выбираем и нажимаем открыть.
Внимание. Паки тяжелые по этому Unity может не слабо задуматься не пугайтесь!!
Генерация ландшафта.
Нажимаем «Terrain>>Create Terrain»
Появился объект «Terrain»
Нажимаем «Terrain>>Set Resolution» И устанавливаем размеры нашего ландшафта как на скриншоте. Для сцены меню на большой ландшафт не нужен и дабы не грузить процессор достаточно этих размеров.
Тыкаем «Set Resolution»
Нажимаем «Component>>Terrain>>Terain Toolkit»
В появившемся компоненте «Terrain Toolkit» я выставил все так
Советую поиграть с настройками очень часто вылазят такие интересные варианты ландшафта.
Итак наш ландшафт готов.
Зададим ему текстуру.
В инспекторе нажимаем на кисточку а затем Edit Textures.
И нажимаем Add Texture. В появившемся окне нажимаем «Select» на Texture
В появившемся окне выбираем текстуру (двойной клик мышью), я выбрал «Grass(Hill)»
Нажимаем Add и наш ландшафт перекрашивается.
Нажимаем «Raise/Lower terrain»
Выбираем кисть, размер(Brush Size) интенсивность(Opacity). И нажимая LBM(Левая кнопка мыши) поднимаем вершину, либо нажимая Shift+LBM опускаем.
Нажимая «Smooth Height» (3 кнопка) убираем острые углы.
Дальше я нарисовал что типа песчаного пляжа добавив текстуру «Good Dirt».
Вот что у меня получилось. Выбираем «Place trees» и нажимаем «Edit trees». В появившемся окне нажимаем кружочек.
И аналогично выбору текстуры выбираем дерево. И варируя настройками кисти насаживаем разных деревьев.
Аналогично на предпоследней кнопке насаживаем цветов, травы, камней итд.
С одним НО для того что бы не грузить процессор мы для травы мы выбираем «Add Grass Texture» а вот для остального «Add Details Mesh».
И в последней вкладке можно побаловаться с настройками деревьев, рендера, настройками ветра. Я оставил все стандартно.
Создадим воду. В окне «Project» идем в паку «OnQ Nature Pack 2 v2>>Resources Demo>>Standard Assets>>Water(pro only)» и выбираем «Daylight water».
Перетягиваем на сцену и при помощи кнопок трансформации ставим и растягиваем как нам надо.
Вот что у меня получилось.
На этом с ландшафтом покончено.
Добавим теперь «Skybox». Для Этого идем в «Edit>>Render Settings».
И в инспекторе выбираем материал «Skybox» тыкнув на кружок.
Я выбрал «Sunny2 skybox».
Освещение и камера.
В «GameObject>>Create Other» выберем «Point light».
В инспекторе выставляем навстройки. «Position» x=100 y=100 z=100 это выставит наш источник света по центру над «Terrain» на высоте равной 100. «Range» = 150, это радиус освещения вокруг источника. И «Itensity» = 3.3.
В итоге получился довольно мягкий свет достающий везде.
У нас уже есть стандартно созданная камера «Main Camera». Кликнем на ней в окне Hierarchy. И расположим ей в позиции X=10, Z=10. A Y устанавливаем относительно высоты вашего ландшафта, у меня получилось 45. Что бы уменьшить площадь захватываемой камерой Изменяем настройку «Field of View»(У меня 43). Ориентируясь на окно «Camera Preview» поворачиваем камеру так как нам надо. У меня получилось Rotation X=5, Y=45, Z=0.
Анимация камеры (полет)
Заходим в «Window>>Animation» или нажимаем Ctrl+6. Нажимаем на стрелочки в пустом поле и выбираем «Create New Clip»
Назовем его на пример «CameraFly». Нажмем на палочку на против «Position.x» и нажмем «Add Curves». Установим позицию кадра на 300 и выставляем необходимые координаты следующего положения камеры.
У меня получились следующие значения:
200?’200px’:»+(this.scrollHeight+5)+’px’);»>
if(window == 1) //Если окно 1
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-80,200,220), «Меню»); //Создаем окно с меню
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-40,180,30), «Новая игра»))
<
Application.LoadLevel(1); //Загружаем уровень 1
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-0,180,30), «Настройки»))
<
window = 2; //открываем окно настроек
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+40,180,30), «Об игре»))
<
window = 3; //Выводим информацию об Автарах игры
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+80,180,30), «Выход»))
<
window = 4; //Вызываем окно выхода
>
>
//Далее все аналогично
if(window == 2)
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-80,200,250), «Настройки»);
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-40,180,30), «Игра»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-0,180,30), «Аудио»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+40,180,30), «Видео»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+80,180,30), «Управление»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+120,180,30), «Назад»))
<
window = 1;
>
>
if(window == 3)
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-80,200,220), «Об игре»);
GUI.Label(new Rect(Screen.width/2-90,Screen.height/2-0, 180, 40), «Инфа о разрабе»);
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+100,180,30), «назад»))
<
window = 1;
>
>
if(window == 4)
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-60,200,120), «Выход?»);
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-20,180,30), «Да»))
<
Application.Quit(); //Выход из игры
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+20,180,30), «Нет»))
<
window = 1;
>
>
if(window == 0) //Если это окно то выключаем меню
<
useGUILayout=false;
>
>
Скрипт перемещаем на Main Camera.
Сохраним сцену под названием menu.unity
Полный код скрипта menu
200?’200px’:»+(this.scrollHeight+5)+’px’);»> using UnityEngine;
using System.Collections;
public class Menu : MonoBehaviour <
public bool showMenu; //Отображать ли меню
public int window; //Отображаемое окно
public float lifeTime = 5.0f; //Максимальное время отображения меню
private float curTime; //Текущие время отображения меню
void Start () <
showMenu = true;
window = 1;
>
void Update () <
if(showMenu == true) //Проверяем включно ли меню
<
curTime += Time.deltaTime; //Если включено, Увеличиваем переменную curTime согласно пройденому времени
>
if(curTime > lifeTime) //Если время дошло до максимальной точки
<
showMenu = false; //Отключаем меню
window = 0;
curTime = 0; //Сбрасываем таймер
>
if(showMenu == false&Input.anyKeyDown) //Если меню выключено и нажата любая клавиша
<
showMenu = true; //Включаем меню
window = 1;
>
>
void OnGUI () <
if(window == 1) //Если окно 1
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-80,200,220), «Меню»); //Создаем окно с меню
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-40,180,30), «Новая игра»))
<
Application.LoadLevel(1); //Загружаем уровень 1
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-0,180,30), «Настройки»))
<
window = 2; //открываем окно настроек
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+40,180,30), «Об игре»))
<
window = 3; //Выводим информацию об Автарах игры
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+80,180,30), «Выход»))
<
window = 4; //Вызываем окно выхода
>
>
//Далее все аналогично
if(window == 2)
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-80,200,250), «Настройки»);
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-40,180,30), «Игра»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-0,180,30), «Аудио»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+40,180,30), «Видео»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+80,180,30), «Управление»))
<
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+120,180,30), «Назад»))
<
window = 1;
>
>
if(window == 3)
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-80,200,220), «Об игре»);
GUI.Label(new Rect(Screen.width/2-90,Screen.height/2-0, 180, 40), «Инфа о разрабе»);
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+100,180,30), «назад»))
<
window = 1;
>
>
if(window == 4)
<
GUI.Box (new Rect (Screen.width/2-100,Screen.height/2-60,200,120), «Выход?»);
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2-20,180,30), «Да»))
<
Application.Quit(); //Выход из игры
>
if(GUI.Button (new Rect (Screen.width/2-90,Screen.height/2+20,180,30), «Нет»))
<
window = 1;
>
>
if(window == 0) //Если это окно то выключаем меню
<
useGUILayout=false;
>
>
>
Лучшие Unity 3D уроки для начинающих
1 min
Unity – мощный движок для создания игр на разных платформах. Хотя Unity Editor работает на языке программирования C #, даже можно разрабатывать игры без программирования.
Rust, Hearthstone и Kerbal Space Program – все это игры Unity. Эти уроки научат вас всему, что вам нужно, чтобы построить игру своей мечты! Сначала заметка об названии.
Unity 3D or Unity?
При поиске информации о Unity вы, возможно, видели ее как Unity 3D или просто как Unity.
Все не становятся проще, когда вы посещаете официальный сайт, на котором есть URL unity3d.com, но относится к движку Unity.
Unity вычеркнула 3D из их названия, поскольку это не только 3D-движок. Он работает в 2D и 3D и имеет инструменты для обоих. Хотя брендинг изменился повсюду, вероятно, не стоило менять официальный URL-адрес веб-сайта.
Короче говоря, Unity 3D – это Unity, и мы будем называть его Unity для этой статьи.
Лучший учебник для начинающих для Unity
Unity3d College предлагает вам полный курс для начинающих Unity по основам игрового дизайна. Этот урок не требует знаний и впервые открывает Unity. В нем представлен редактор Unity, игровые объекты и базовые функциональные возможности с кодом C #.
На сайте Unity3d.College есть коллекция контента, включая ссылки на видео, подкасты по разработке игр и письменные учебные пособия. На этом сайте есть что-то для начинающего и опытного пользователя Unity.
Лучший интерактивный учебник для Unity
Многие учебные пособия содержат файлы проектов, которые помогут вам получить практический опыт работы с проектами Unity. Официальные интерактивные учебные проекты от Unity делают еще один шаг вперед.
Эти проекты принимают новичков через создание игр и тестирование. Окна учебника выделяют различные части редактора Unity и дают пошаговое руководство по его работе. Есть несколько интерактивных учебных пособий, доступных бесплатно через Unity Hub Launcher, который поставляется с Unity.
Лучший учебник для начинающих C # для Unity
Brackeys – уважаемый учитель YouTube, который создает учебники по Unity для всех уровней. Его введение в C # оставляет Unity в стороне и концентрируется исключительно на коде, который лежит в основе движка. Этот урок не требует никаких предварительных знаний в области программирования.
Это хороший материал для изучения, так как все библиотеки Unity построены на C #, но есть много других веских причин для изучения C#.
Лучший учебник по Unity Game Kit: Unity 2D Game Kit
Game Kits – это шаблоны проектов, которые позволяют новичкам создавать игры в редакторе Unity. Вы можете скачать 2D Game Kit с сайта Unity, который предоставляет пошаговое руководство по его использованию.
Сохраняя все удобное для начинающих, это руководство знакомит с некоторыми основными понятиями для разработки 2D-игр. К концу учебного курса вы познакомитесь с Tile Maps, поведением на основе событий и базовым тестированием игры. Unity также предлагает набор 3D-игр.
Лучший учебник по кодированию для Unity
Playmaker, доступный в Unity Asset Store, позволяет некодерам создавать игры. Создатели Inside использовали его, чтобы художники и дизайнеры уровней могли реализовывать игровой контент. YouTuber Jayanam объясняет основы визуальной логики с Playmaker в его видео-учебнике.
В качестве визуального конечного автомата (FSM) Playmaker упрощает создание сложного поведения и игровой механики. Вы можете делать целые игры со сложным поведением и механикой, используя систему. Если вы полны идей, но не хотите учиться программировать, Playmaker идеально подходит для вас.
Лучший учебник по платформеру для Unity
Томас Браш, разработчик Pinstripe и очень ожидаемой Once Upon A Coma, делится своими знаниями в этом всеобъемлющем руководстве по созданию платформера в Unity. Опираясь на десятилетний опыт, он разбивает каждый элемент на понятный язык, идеально подходящий для начинающих.
Учебное пособие посвящено импорту слоев из Photoshop в Unity и созданию эффекта параллакса, воплощающего его в жизнь. Он показывает, как правильно визуализировать сцену, импортировать персонажа игрока и передать функциональность игры через код. Томас создал множество учебных пособий на своем канале YouTube, а также быстрые советы о жизни разработчика игр.
Лучший краткий учебник для Unity
Если вы ищете краткий обзор основных игровых механизмов, Android Authority у канала YouTube есть ответ. Используя движок Unity и Android Software Development Kit (SDK), вы сможете сделать функциональную игру всего за семь минут.
В видео рассказывается о создании пиксельной графики и ее импорте в Unity, а также о некоторых основных принципах работы с помощью кода. Если этого достаточно, чтобы заинтересовать вас в разработке игр для Android, этот процесс также будет более подробно описан в серии публикаций создателя учебника YouTube.
Лучший учебник для Unity
Подробные учебные пособия часто создают полноценные игры и охватывают темы игрового дизайна гораздо глубже, чем базовые учебные пособия. YouTuber quill18creates создает доступные учебные серии, которые обычно подробно охватывают целые проекты.
Текущий урок посвящен созданию игры 4X Space Strategy в стиле, аналогичном Civilization. Вся игра с открытым исходным кодом, и каждое видео содержит четкие инструкции, которые подходят для начинающих. На канале quill18creates есть несколько похожих проектов, а также отдельные видеоролики о разработке игр для Unity.
Лучшие шейдерные уроки для Unity
Хотя шейдеры не относятся к Unity, они необходимы для того, чтобы любая игра выглядела хорошо. Каждый захватывающий дух эффект изображения в играх зависит от них. Написание шейдеров может быть сложной задачей. У них другой синтаксис в C #, и даже понимание основных терминов может сбивать с толку.
Этот канал является одним из лучших в объяснении того, как работают шейдеры и как писать шейдерный код. Видеоролики о деконструкции и воссоздании графики из популярных игр идеально подходят для того, чтобы увидеть, как эти концепции работают в действии.
Лучший урок освещения в Unity
Этот учебник от YouTuber LMHPoly охватывает основы освещения в Unity. Для создания проекта вам не требуются предварительные знания Unity, и каждый шаг объясняется с помощью экранных подсказок.
Освещение – это разница между красивой игрой и отличной. Если вы больше ориентированы на эстетику, чем на кодирование, изучение освещения может быть для вас.
Лучший учебник CAD для Unity
В то время как большинство пользователей Unity создают игры, движок также идеально подходит для архитекторов и 3D-моделистов, чтобы показать свою работу. YouTuber ArquMania проведет вас через весь процесс экспорта CAD-модели из Rhino и импорта ее в Unity.
После импорта модель текстурируется и помещается в сцену. Добавив персонажа игрока, люди могут ходить вокруг модели на сцене. Этот процесс работает для любого программного обеспечения САПР и будет идеальным для архитекторов и дизайнеров интерьера.
Игра на … с Unity!
Unity – это мощный инструмент для разработки игр. Вы можете выучить основы за один день, но разработка обучающей игры – это постоянный процесс. Хотя могущество, Unity может быть не для вас. К счастью, есть много разных движков для разработки игр, и один может подойти вам лучше, чем другой.