с чего начать изучение unity
Научитесь программированию в Unity
Хотите программировать собственные компьютерные игры? Начните с бесплатных наборов и обучающих материалов по программированию на Unity Learn, а также не забывайте про наше замечательное сообщество.
Unity FPS Microgame
Новички могут загрузить Unity бесплатно и начать с готовых ресурсов Unity Microgame и Mod. Затем углубите знания с помощью обучающих материалов и изучите структуру C#, языка программирования игр в Unity. Научитесь разрабатывать простые скрипты на C# для программирования игрового процесса, механики, визуальных эффектов, систем ИИ и других элементов.
Реализуйте свои способности к программированию в Unity! Это может стать началом вашей успешной карьеры. Unity — самая популярная платформа разработки игр в мире: 50% всех мобильных игр созданы в Unity! Профессия Unity-разработчика находится в первой десятке по росту востребованности в США согласно данным LinkedIn.
Introduction to C# scripting in Unity
Скрипты в Unity разрабатываются на языке C# (произносится как «си-шарп»), который имеет богатые возможности и прост в изучении. Предлагаем вашему вниманию простое и понятное введение в программировании на C# в Unity, которое также включает информацию о базовом синтаксисе языка, то есть о переменных, функциях и классах.
Unity Creator Kit: Code
Наборы Creator Kit — это простые игровые проекты, доступные на Unity Learn. Каждый из них можно изучить и освоить за несколько часов В наборе Creator Kit для начинающих программистов вы познакомитесь с основами разработки скриптов на C# для Unity в контексте игры жанра экшен-RPG.
Create with Code course from Unity
Create with Code — это официальный вводный курс Unity по программированию, содержащий более 37 часов насыщенного образовательного контента. В процессе разработки прототипа, решения задач по программированию и ответов на вопросы вы освоите базовые принципы программирования на примере разработки собственного игрового проекта на C# с нуля.
Другие способы учиться программированию в Unity
Обучающие материалы по программированию на C# в Unity
У нас есть масштабная коллекция коротких уроков, где рассматриваются основы программирования на C# в Unity. Начните с материалов для начинающих, а затем переходите к коллекции для опытных пользователей.
Learn C# from Brackeys
Советуем вам изучить эту серию видеороликов с популярного канала Brakeys на YouTube, где рассматриваются основы разработки скриптов на C# в Unity.
Автор: Jabrils
Разработчик ПО и опытный блогер Jabrils рассказывает на YouTube о том, как он учился программировать, и публикует собственные материалы для начинающих в плейлисте Everything you need to start programming.
Осваивайте навыки, которые помогут воплотить в жизнь ваши идеи
Развивайте навыки и карьеру в собственном темпе с помощью обучающих ресурсов или под руководством экспертов Unity.
Для учащихся
Найдите все необходимое для развития навыков и продвижения по карьере.
Для преподавателей
Вооружите своих студентов всем необходимым для выживания на рынке труда будущего.
Профессионалам
Дополните свой талант навыками, необходимыми для внедрения и распространения инноваций.
Узнайте, как развить навыки
У нас есть ресурсы как для новичков и студентов, так и для экспертов и профессионалов. Мы поможем реализовать ваши творческие планы в Unity.
Обучение Unity
Развивайте навыки работы в Unity с помощью онлайн-занятий и обучающего контента общей длительностью более 750 часов, специально разработанного для любителей и профессионалов всех уровней.
Программы сертификации
Подтвердите соответствие своих навыков мировым стандартам. Продемонстрируйте свою квалификацию и подчеркните свои преимущества на рынке труда.
Очные мастер-классы
Углубляйте знания и развивайте самые актуальные навыки, включая VR, принимая участие в очных мастер-классах от сертифицированных преподавателей Unity.
Узнайте о возможностях разработки инновационных учебных программ для вашего высшего учебного заведения, чтобы подготовить ваших студентов к успешной карьере. Получите доступ к учебным планам, скидкам до 70% на продукты Unity и многому другому.
Разработка компьютерной игры в Unity: начните здесь
Любой новый мир начинается с мечты. Unity предлагает все необходимое для ее воплощения. Здесь вы найдете множество советов по разработке вашей первой компьютерной игры. Никаких требований к уровню знаний и навыков: от вас нужно только желание!
Создавайте игру играючи
Начните творить на примере готовых шаблонов Unity Microgame. Каждый из шаблонов имеет свою коллекцию ресурсов Mod, позволяющих играючи изменить исходный шаблон, попутно осваивая основы игрового дизайна, логики взаимодействий, визуализации и многое другое.
LEGO® Microgame
Реализуйте свои творческие идеи с помощью виртуальных блоков LEGOⓇ в нашем новейшем шаблоне Microgame!
FPS Microgame
Взрывайте печеньки, добавляйте симпатичных, но смертоносных роботов, украшайте подземелье. Создайте собственный шутер от первого лица из шаблона FPS Microgame.
2D Platformer Microgame
Разбрасывайте конфетти, устройте феерию света, добавьте бодрости в походку вашего двумерного персонажа в этом милом платформере.
3D Karting Microgame
Набросайте мармеладных мишек, снопы искр и прокачайте свою тачку в веселом картинге.
Your first game jam with Unity
Глобальное сообщество Unity предлагает участникам множество способов общения друг с другом. Для новичков доступны гейм-джемы, задачи и группы по интересам (по одной для шаблонов Karting, 2D Platformer и FPS Microgame), которые помогут набраться уверенности и поделиться своими первыми творениями. Мы рады всем желающим!
Made with Unity — Norman’s Island by Little Mountain Animation
Unity — это самая популярная в мире платформа разработки игр, ведь на ней создано более 50% всех мобильных игр, 60% всего контента для дополненной и виртуальной реальности, а Unity-разработчик — это седьмая по росту популярности профессия согласно недавнему отчету LinkedIn U.S. Emerging Jobs.
Новички могут загрузить Unity бесплатно и начать с готовых ресурсов Unity Microgame и Mod. Учитесь с помощью сотен обучающих материалов, курсов, словарей и игровых наборов — бесплатных или по разумной цене — от Unity и участников нашего потрясающего сообщества.
Вдохновляйтесь, учитесь и творите
Создайте двумерную компьютерную игру
Unity — это ведущая платформа разработки как 2D-, так и 3D-игр. Если вам больше по душе 2D, то здесь можно узнать, как разрабатывать такие игры.
Программирование компьютерной игры в Unity
Вы хотите узнать, как программировать игры? Мы предлагаем множество ресурсов, на примере которых вы сможете научиться программировать на C# в Unity.
Разработайте 3D-игру в Unity
Unity предлагает инструментарий, который поможет вам разработать вашу первую 3D-игру. Начните отсюда, если хотите познакомиться с процессом разработки нового иммерсивного мира для ваших игроков.
Sykoo Sam: начало разработки игр
Sykoo Sam — евангелист Unity в интернете, автор популярного канала, посвященного игровой разработке. Вот несколько советов разработчикам-новичкам.
Thomas Brush: посмотрите это, прежде чем создавать первую игру
Thomas Brush создает игры более 10 лет и готов поделиться мудростью, полезной как начинающим, так и опытным разработчикам.
Dani: студент и игровой разработчик
YouTube-блогер и будущий разработчик Дэни делится своими идеями по программированию, а также дает советы по созданию игр в Unity.
Blackthornprod: «Я создал игру в Unity за неделю»
В этом видео, Blackthornprod делится опытом разработки игры Unity за одну неделю.
Brackeys: как создать видеоигру
Смотрите серию видеороликов от популярного разработчика Brackeys, в которой он делится основными этапами разработки игры.
Mix and Jam: берем идеи из реальных игр
На канале Mix and Jam рассматриваются любимые игры автора с попыткой воссоздать их элементы в Unity.
Инструменты для разработки игр
Мы подготовили для вас советы по использованию основных инструментов, которые помогут начать путь в мире игровой разработки.
Станьте успешным игровым разработчиком
Чтобы начать карьеру разработчика, вам потребуется определенный склад ума, базовые навыки и несколько полезных ресурсов.
Советы по дизайну уровней
Чтобы научиться создавать качественный дизайн уровней для игр, нужно внимание к деталям и знание весьма важных концепций.
Как попасть в игровую индустрию
Чтобы стать частью игровой индустрии, нужно не так уж и много. Вот несколько советов по выбору карьеры.
Подходит ли Unity для разработки 2D-игр?
Поговорим о том, что делает разработку 2D-игр в Unity удобной, интуитивно понятной и интересной.
Использование Blender и Maya с Unity
Одни из самых популярных пакетов анимации — это Blender и Maya. Предлагаем вам руководство по их использованию с Unity.
5 обучающих материалов по Unity для новичков в игровой разработке
Наши лучшие авторы контента покажут, как начать разрабатывать игры в Unity.
Терминология видеоигр
Мы подготовили подробный словарь терминов, используемых в игровой разработке, Unity и в среде игроков, который поможет хорошо освоиться в нашей отрасли.
5 распространенных ошибок игровой разработки, которые допускают новички
Разработка игр — это весело и интересно. Если вы грамотно подойдете к работе с самого начала, то избавите себя от проблем в будущем.
10 советов по дизайну игр для новичков
Советы для всех начинающих игровых разработчиков, решивших заняться игровым дизайном.
Пять типов привлекательных игровых персонажей
Мы поговорим о том, как сделать игрового персонажа правдоподобным, чтобы у игрока возникло чувство привязанности.
Unity3D для начинающих — Туториал 1
Предисловие
Хабралюди проявили некоторый интерес к Unity, поэтому открываю этим постом цикл туториалов, освещающих основные моменты работы с объектом (цикл неопределённой пока длительности — если кому окажется полезным продолжу).
Сразу говорю — чтобы снизить порог вхождения, рассказывать буду с рассчетом на людей, которые в жизни никогда ничем подобным не занимались. Так как самым простым в реализации основной функциональности будет сделать простенький шутер, с него и начнем. В этом уроке мы поговорим о том, как создать землю, небо, управляемого персонажа, о камере, через которую мы будем смотреть на небо и солнце и немного о стрельбе красными шарами по белым кубам. Итак, поехали…
Let’s get it started
Предстартовая подготовка
Для начала качаем и устанваливаем собственно сам Unity на офсайте, выбрав лицензию с ценником Free. Можно скачать и тридцатидневный триал UnityPro, это на ваш вкус.
При первом запуске перед вами предстанет окошко Project Wizard’а (у вас там будет пусто):
Выбираем папку назначения, жмём Create и ожидаем, пока небыстрый процесс импорта завершится. В конце перед нами предстанет пустое поле для экспериментов:
Если коротко пройтись по подписям на картинке, то инспектор префабов и ресурсов — это то место где хранятся добавленные в проект модели, текстуры, звуки, и собственно префабы — сохранённые для дальнейшего повторного использования объекты. Т.е. мы создали объект противника с прикрепленной к нему моделью и скриптом, управляющим его поведением, и хотим чтобы на каждом уровне нам не приходилось создавать его заново, и чтобы все копии этого объекта изменялись не вручную, по-отдельности, а все скопом. В таком случае мы сохраняем его как префаб, и когда в следующий раз нам понадобится поставить врага, просто перетаскиваем префаб на сцену; а изменение префаба меняет и все его копии.
Иерархия объектов на сцене — это список всех объектов на текущем уровне, показывающий заодно отношения Parent-Child.
Инспектор объектов показывает компоненты и их свойства выделенного в данный момент объекта — модели, текстуры, префаба.
Волшебные кнопки позволяют прямо в редакторе запустить сцену, погонять её на предмет багов, поставить на паузу чтобы проверить состояние каких-нибудь объектов и провести тонкую настройку и контроль путем покадрового выполнения.
В главном окне редактирования мы пользуемся всеми прелестями драг’н’дропа для расставления объектов по уровням.
Для начала посмотрим, что у нас уже есть в дефолтной сцене. Негусто, правда? Объект с говорящим названием Main Camera, по нажатию на название которого в иерарахии мы увидим конус viewport’а и маленькое окошко с видом из камеры.
Земля обетованная
Но возвращаясь к нашим баранам, создадим поверхность, по которой будем ходить. Моделей у нас нет пока, поэтому можно создать просто большую плоскость… Но мы создадим землю, то бишь Terrain — он покрасивше голой плоскости будет. Для этого в меню выбираем Terrain->Create Terrain. Вуаля!
Опять-таки, не очень впечатляет. Для начала, сменим размер земной тверди через Terrain->Set Resolution. По умолчанию параметры Length и Width равны 2000, т.е. 2 км на 2 км. Для тестовых побегушек нам столько не надо, потому пишем в эти поля 500 и 500 — более чем достаточно.
Теперь назначим земле текстуру. Для этого выделяем террейн (в главном окне или в иерархии), и наблюдаем доступные свойства в инспекторе объектов. Там мы увидим инструменты для редактирования террейнов (стандартные — поднять\опустить, сгладить, и т.д.). Можете сразу начать рисовать нужный вам ландшафт, но в данный момент нас интересует кнопка с кисточкой Paint the terrain texture. А на закладке, которую она открывает, кнопка Edit textures, в меню которой жмём Add Texture:
Откроется окошко с параметрами будущей текстуры. Находим среди них один со значением «None (Texture 2d)» и кликаем на шарик с точкой справа от этих слов. Откроется выбиралка текстуры из уже добавленных в ресурсы проекта. К слову, чтобы добавить текстуру в проект, достаточно её просто скопировать в папку проекта — юнити все сам подхватит. Импорт всего остального происходит анналогично а удаление ресурса из проекта означает физическое удаление с диска.
Выбираем нужную текстуру, например Grass(Hill). Можно добавить ещё несколько текстур, например Cliff (Layered Rock), и, пользуясь кистью, выбираемой чуть выше, раскрасить по своему усмотрению. У меня после предыдущих манипуляций получилось вот так:
Если мы в данный момент нажмем на кнопку «Play» вверху экрана, то вы увидите, скорее всего, кусок нашей плохо освещённой земли на голубом фоне. Но так ведь неинтересно, поэтому прежде чем продолжить, нам надо добавить на сцену освещение, симулирующее солнечное, и заменить голубой фон небом. Свет добавляется через главное меню, GameObject->Create other->Directional light. Затем, следуя картинке, нажимаем кнопку которая меняет стрелки-хелперы вокруг выделенного объекта на оси вращения. Тягая за эти оси мы, как ни странно, вращаем осветительный прибор так, чтобы земля покрасивше подсвечивалась.
Чтобы вместо голубого полотна над головой было небо, надо указать текстуру скайбокса (skybox — «небесная коробка», куб, на который изнутри натянута текстура, как правило — панорамная фотография неба, сделанная таким образом, что изнутри кажется, будто ты окружен шаром с этой текстурой. Именно так в большинстве игр и рисуется небо). Для этого заходим в меню Edit->Render Settings, находим свойство «Skybox material» и, как мы это делали с текстурой земли, жмем на кружок с точкой справа от него. Нам покажут материалы, имеющиеся в проекте (чтобы не ходить в дебри терминологии, будем считать что материал это текстура и то, как она будет отображаться — будет она прозрачной, или будет блестеть, и т.д.). Выбирайте любой со словом skybox, например sunny2 skybox. Отлично, теперь наш полигон выглядит поживее.
Управление и камера
Я долго думал, включать ли в первый туториал разбор скриптов и написание с нуля своей камеры и управления. И всё-таки решил пока это отложить. Сегодня мы просто соберём своего персонажа из уже готовых кусков, а в следующем туториале уже начну разбирать скрипты.
Вообще-то, в комплект Юнити входят два игровых объекта, дающих готовое, уже собранное решение для камеры и управления. Но я о них вам пока не скажу, чтобы был стимул собрать своими руками. 🙂
Для начала, создадим объект для игрока. Вернее, чтобы не плодить лишние скрипты, переименуем «Main Camera» в «player». Теперь, выделив камеру, в меню выберем Component->Physics->Character Controller. Character controller — это компонент, который обрабатывает положение объекта (вернее, персонажа) в пространстве: его движение, повороты, падения, прыжки и столкновения с другими объектами. Все это можно делать напрямую, без помощи этой обертки вокруг стандартных функций перемещения объектов и проверки коллизий, но тогда код реализации передвижения вырастает в разы, что плохо для первого знакомства с движком. А так, в общем-то, можно на первом уроке и не кодить 🙂
В качестве лирического отступления стоит рассказать о компонентах.
Любой предмет, который мы видим на сцене — это экземпляр класса с говорящим названием GameObject. Он имеет некоторое количество т.н. компонентов — в свою очередь, являющихся экземплярами своих классов. Каждый компонент выполняет некую утилитарную функцию. Так, у каждого GameObject должен быть компонент Transform, который занимается тем, что хранит текущие координаты, угол разворота и размеры объекта в трехмерном пространстве. Ну и заодно содержит методы для выполнения действий над положением объекта в этом пространстве: пермещение, развороты и т.д., т.е. когда мы в редакторе тянем объект за стрелки-управляторы, мы меняем координаты его трансформа.
А вот например компонент RigidBody занимается тем, что обрабатывает физическое поведение объекта: всё, что мы видим, когда бочка от выстрела падает на бок и катится — результат работы RigidBody. Который, кстати, не сможет правильно работать, если не назначить объекту компонент типа Collider, который хранит в себе трехмерную модель, по которой определяются столкновения объекта. Эта модель не отображается, но именно она, а не та что мы видим на экране во время игры, проверяется на столкновения с окружающим миром.
Если мы теперь поставим нашего player’а над поверхностью земли и включим Play, наша камера всё ещё будет стоять на месте. Так происходит потому, что Character Controller лишь обрабатывает поступающие к нему управляющие команды, сама они инициативы не проявляет. Чтобы разъяснить ей, что делать, драг-н-дропнем на player’a скрипт, который лежит в инспекторе префабов в папке Standart Assets\Character Controllers\Sources\Scripts и зовётся «CharacterMotor». Его задача — используя методы Character Controller осуществлять основную рутину передвижения: реализовывать действие гравитации, прыжки, вычислять текущую скорость и направление движения. Запуск уровня теперь заставит камеру игрока падать на землю — уже что-то.
Но мы всё еще стоим на месте: ведь у нас нет скрипта, который перехватывал нажатия клавиш и сообщал о них в CharacterMotor. Этим занимается лежащий в той же папке скрипт FPSInputController. Кидаем его на игрока, запускаем и ура — кнопки W, S, A, D теперь позволяют ходить, а пробел — прыгать! Но ходим-то мы всё как-то в одну сторону, вправо-влево да приставным шагом. Чтобы вертеть головой и идти куда глаза глядят, понадобится ещё один скрипт, оттуда же: MouseLook. Кидаем, запускаем — и получаем полноценное управление.
Теперь можно поиграться с переменными. Character Cоntroller установил вместе с собой Character Motor — в его-то свойствах и хранятся такие параметры, как Gravity, Max Forward Speed, Jumping Base Height и всякие другие. Вот они, все плюсы Инспектора — все основные свойства классов всегда на виду, даже в код лезть не надо.
UPD: продолжение, которое выпало из поста благодаря моей исключительной криворукости:
Стрельба по изредка движущимся мишеням
Бегать по собственноручно сделанным холмам, любовно раскрашенным аж тремя текстурами, конечно, весело. Но вскоре надоедает. Поэтому мы выберем в меню GameObject->Create other->Cube, разместим этот куб в воздухе рядом с игроком, в свойствах Transform у него укажем следующие параметры Scale (x, y, z): 3, 3, 3; и запустим уровень, чтобы посмотреть, что этот куб будет делать. Делать он не будет ровным счетом ничего, если честно. Но стоит, выделив этот куб, назначить ему, Component->Physics->Rigidbody, при следующем запуске мы увидим совсем другую картину. Куб падает, крутится, почти как настоящий, правда как картонный — масса его по умолчанию 1 кг, что для таких размеров маловато, но мы её пока трогать не будем.
Выделив куб, нажмём Ctrl+D (дублирование объекта), и с зажатым Ctrl потянем куб вверх до тех пор, пока кубы не будут расположены один над другим. Теперь у нас два совершенно одинаковых куба ровно друг над другом. Повторим эту процедуру кубов до 15, и посмотрим на падение Вавилонской башни.
Далее, создаем новый куб, но не назначаем ему Rigidbody. Из него мы сделаем ровную поверхность для удобства стрельбы. Задаем ему Scale: 150, 20, 150; и располагаем где угодно — главное разместить на нем нашу башню и игрока. У меня получилось так:
После этого перетаскиваем сферу из списка в иерархии на созданный нами префаб. Префаб становится голубым, а вместе с ним синеет и имя сферы на сцене — это означает, что она является клоном префаба. Переименовываем префаб из дефолтного имени в, допустим, prefab_bullet. Для красоты. Пуля готова!
public var bulletImpulse = 300;
public var shootSpeed = 1;
public var bullet : GameObject;
public var lastShotTime : float;
function Start() <
lastShotTime = 0;
>
if (Input.GetKey(KeyCode.Mouse0)) <
if (Time.time>(lastShotTime + shootSpeed)) <
var bull_clone : GameObject;
bull_clone = Instantiate(bullet, transform.position, transform.rotation);
Physics.IgnoreCollision(bull_clone.collider, collider);
bull_clone.rigidbody.AddForce(transform.forward*bulletImpulse, ForceMode.Impulse);
lastShotTime = Time.time;
Дальше сохраняем скрипт, и по отработанной схеме — перетаскиваем его из окна префабов на нашего player’а, что стоит посреди белой плоскости. Выделив его теперь, мы увидим… Вот что:
А это значит, что скрипты цепляются к объектам так же, как и компоненты, и управлять ими можно так же. Вернее, они и есть компоненты, но это сейчас несущественно. Существенно сейчас нажать кружок с точкой рядом с параметром Bullet и в открывшейся выбиралке найти наш префаб со сферой. Выбрав его в качестве пули, можно смело запускать уровень и наслаждаться стрельбой ядрами по картонным коробкам.
Если, конечно, НЛО не вмешалось в мои мысли и я не пропустил какой-то важный шаг.
Надеюсь, что я достаточно подробно осветил то, что надо было осветить, и не зацикливался на неважных мелочах. Пусть этот туториал и носит ознакомительный характер, хотелось бы верить, что он кому-то окажется реально полезен. Жду рациональной критики и пожеланий на следующий выпуск. Спасибо за внимание!











































