Создайте 3D-игру в Unity
Unity помогает всем желающим создавать красивые 3D-игры. Узнайте, как создать первую 3D-игру с помощью инструментов ProBuilder, Terrain Tools, Unity VFX Graph и многих других.

In the Valley of Gods
Создавайте 3D-игры в Unity
Unity предлагает множество функций и ресурсов, которые делают наше решение самой популярной в мире платформой разработки 3D-контента в реальном времени. Начните с загрузки бесплатной версии. Посмотрите на знаменитые 3D-игры, уже созданные в Unity, и познакомьтесь с возможностями, которые мы предлагаем для разработки вашей первой 3D-игры.
- Учитесь разрабатывать 3D-графику и крушить роботов
- Соберите трехмерную головоломку с невероятной скоростью
- Воплощайте свои идеи в игре с помощью Asset Store

Учитесь разрабатывать 3D-графику и крушить роботов
Загрузив Unity, вы получите приглашение опробовать один из наших шаблонов Microgame, например, готовый шутер от первого лица. Эти шаблоны дают вам полное право копаться в уже разработанной игре, позволяя познакомиться с множеством ценных инструментов и получить навыки модификации собственных 3D-проектов.

Соберите трехмерную головоломку с невероятной скоростью
Если у вас есть интересная идея, но времени у вас чуть меньше часа, то загляните на Unity Learn. 3D Puzzle Creator Kit поможет вам разобраться в простых механиках без необходимости программировать, а также позволит создать и настроить 3D-головоломку.

Воплощайте свои идеи в игре с помощью Asset Store
Building your first 3D game project can be challenging, but you don’t have to do everything yourself. You’ll find a ton of helpful content in the Unity Asset Store to bring some polish to your game. Visual effects, characters, environment art, sound effects and more are all ready to be downloaded and imported into your new game.
Создание игр на Unity 3D

Представляем вам курс по созданию простой Unity 3d игры. За счёт создания данной игры вы изучите базовые концепции работы с движком Unity 3D и познакомитесь со множеством его функций и возможностей.
Видеоурок
Полезные ссылки:
- Официальный сайт Unity ;
Информация про Unity
Unity – это игровой движок, на котором строится большая часть современных игр на разных платформах. Посредством движка реально создавать игры, ориентированные на запуск на компьютерах (Windows, Linux, MacOS), мобильных телефонах, планшетных компьютерах (Android, iOS, Windows Phone) и даже игровых приставках PlayStation, Xbox, Nintendo.
Создание игр на движке Unity невозможно представить без написания дополнительного кода. В Unity поддерживается два языка программирования — JavaScript и C# . Раньше также поддерживался язык Boo, но позже от него отказались.
Вы можете самостоятельно выбрать на каком языке программировать в Unity, так как особого значения это не имеет. Большинство разработчиков дают предпочтение языку C# , так как он более мощный и найти различную документацию намного проще, нежели для языка JavaScript .
В Unity используется встроенные функции, которых нет ни в C#, ни в JavaScript. За счёт этого особо не имеет значения знает вы язык программирования или нет. Тем не менее, мы все же рекомендуем сперва пройти курс по изучению языка C#. Курс представлен на нашем сайте по этой ссылке .
Как сделать 3Д игру?
Мы изучим как создать 3Д игру на Юнити . Процесс создания 3Д игры на Unity прост. Он разделяется на два этапа:
- построения дизайна через движок Unity 3D ;
- написание кода на основе языка C#.
Многие останавливаются лишь на вопросе «К ак создать 3D игру через Unity?», так как далее не находят нужной информации и останавливаются. Мы же с вами за курс изучим как создать Unity 3D игру и выполним разработку игры на Юнити 3D.
Наша Unity 3D игра будет обладать дизайном, а также набором функций. За счет наших Unity 3D уроков вы вникнете в тему и начнете писать игры самостоятельно.
План курса
За курс мы создадим простую игру под названием «Roll a Ball». В игре будет шар, который можно будет передвигать за счёт стрелок на клавиатуре. При передвижении объект сможет поглощать другие объекты на поверхности, тем самым собирая очки.
Курс является вступительным, поэтому никаких знаний перед его прохождением не требуется. После курса вы можете просмотреть более сложные программы. Все программы представлены на нашем сайте здесь .
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
supermario34567
Alex_Ilya wrote:
Ты хочешь, что бы мы за тебя все скрипты написали?
ну я же не знаю
пожалуйста помогите!


Апрель 7, 2023 09:32:24
Alex_Ilya
Alex_Ilya wrote:
Ты хочешь, что бы мы за тебя все скрипты написали?
ну я же не знаю
пожалуйста помогите!


А что бы знать, как это сделать, надо:
- Либо хорошо учиться по физике и математике в течение 11 (в зависимости от страны) классов.
- Или искать уроки на ютубе.
Апрель 7, 2023 11:42:07
Your_old_scratcher
Alex_Ilya wrote:
Ты хочешь, что бы мы за тебя все скрипты написали?
ну я же не знаю
пожалуйста помогите!


А что бы знать, как это сделать, надо:
- Либо хорошо учиться по физике и математике в течение 11 (в зависимости от страны) классов.
- Или искать уроки на ютубе.
Или быть философом как я, и самому открыть формулу: x^2 = x^3 / z^3
^3 — трёхмерный, ^2 — двухмерный…
Апрель 7, 2023 11:43:50
Your_old_scratcher
Alex_Ilya wrote:
Ты хочешь, что бы мы за тебя все скрипты написали?
ну я же не знаю
пожалуйста помогите!


А что бы знать, как это сделать, надо:
- Либо хорошо учиться по физике и математике в течение 11 (в зависимости от страны) классов.
- Или искать уроки на ютубе.
Кстати, в школе тебя этому не научат.
Апрель 8, 2023 14:45:30
Idey_programm
supermario34567 wrote:
как сделать 3д игру?
присылайте мне скрипты которые помогут сделать мне 3д игру
Вот тутор на немецком языке. На русском его пока нет, используй переводчик
Апрель 8, 2023 14:52:30
minilesh
supermario34567 wrote:
как сделать 3д игру?
присылайте мне скрипты которые помогут сделать мне 3д игру
Вот тутор на немецком языке. На русском его пока нет, используй переводчик Нету даже на английском? :0
Апрель 9, 2023 09:02:46
Idey_programm
supermario34567 wrote:
как сделать 3д игру?
присылайте мне скрипты которые помогут сделать мне 3д игру
Вот тутор на немецком языке. На русском его пока нет, используй переводчик Нету даже на английском? :0 На немецкой Вики есть много полезных статей, которых нет на английской.
Апрель 9, 2023 15:12:27
minilesh
supermario34567 wrote:
как сделать 3д игру?
присылайте мне скрипты которые помогут сделать мне 3д игру
Вот тутор на немецком языке. На русском его пока нет, используй переводчик Нету даже на английском? :0 На немецкой Вики есть много полезных статей, которых нет на английской. Удивительно
Апрель 9, 2023 15:56:36
greg1234567890f
Idey_programm wrote:
На немецкой Вики есть много полезных статей, которых нет на английской.
Ты не смотрел переводы? https://en.scratch-wiki.info/wiki/Three_Dimensional_Projects
Апрель 9, 2023 19:09:45
spectre_specs
Standard | Mobile
Как создать 3d игру прямо в браузере
Привет всем. Сегодня я вам расскажу как легко вы можете создать 3d игру прямо в вашем браузере и сделать вы сможете это очень быстро, примерно за минут 30.
Three.js
Это библиотека которая позволяет создавать 3д графику, она довольно проста и мощна. Мы будем использовать только её и больше никаких других фреймворков. Чтобы её подключить вам нужно скачать файл из этого рипозитория в папке build/three.js. Я качаю файл three.min.js (точно такая же, но весит меньше) и просто подключаю.
Обратите внимание что отступы у body стоят нулевые, это нужно чтобы экран не съезжал вправо.
scene, camera и renderer
Создание графики в данной библиотеке основано на трёх столпах. Первое Scene это весь наш мир, вся информация, которая содержится о нём. Второе Camera это объект, который обозначает с какого ракурса мы будем смотреть на этот мир. Третье Render, объект который обрабатывает камеру и сцену и выдаёт результат на экран. Давайте создадим эти три объекта для начала.
var scene = new THREE.Scene(); //камера содержит 4 аргумента: угол обзора в градусах, отношение сторон экрана, и растояние обработки минимальное и масимальное var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); camera.lookAt(new THREE.Vector3(0, 0, 0)); //указываем куда будет смотреть камера scene.add(camera); var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); //указываем размеры рендера, которые соответсвую нашей камере document.body.appendChild(renderer.domElement); //добавляем DOM элемент рендара в html код
Также нам нужна функция анимации, которая будет покадрово обновлять сцену.
function animate() < requestAnimationFrame(animate);//вызываем функцию при каждом обновлении кадра renderer.render(scene, camera);//обновляем рендер >animate();//вызываем первый раз функцию
Автообновление размеров экрана
Размеры окна браузера могут меняться нам нужно поставить событие на изменение размеров и обновлять размеры камеры и рендера.
function setSize() < renderer.setSize(window.innerWidth, window.innerHeight);// устанавливаем размеры рендера camera.apect = window.innerWidth/window.innerHeight;//устанаваливает отношение сторон камеры camera.updateProjectionMatrix();//обновляем камеру >window.addEventListener("resize", setSize);//создаем событие на изменение размеров окна браущера
Освещение
Чтобы было что-товидно нам нужен свет. Я создам два типа света, первый свет Ambient, которая распределён равномерно по всей сцене и как бы имитирует солнце. И второй Point (точечный) имитирует свет лампочки.
var light = new THREE.AmbientLight(0xffffff, 0.2);//создаем равномерный свет белого цвета с мощностью 0.2 scene.add(light);//добавляем в сцену равномерный свет var light = new THREE.SpotLight(0xffffff);//создаем точечный свет белогоцвета light.position.set(0, 5, 0);//задаем координаты точечного света scene.add(light);//добавляем в сцену точечный свет
Создаём первый объект
Объекты в three.js добавляется путём задание геометрии объекта и материала. Для начала создадим пол коричневого цвета, это будет просто обычный параллелограмм. Поэтому геометрию возьмём BOX и просто растянем его под размеры параллелограмма, а материал возьмём Phong чтобы хорошо было видно отражение точечного света.
//создаём пол с геометрией куба и Phong материалом коричневого цвета, side указываем с обоих сторон материал var floor = new THREE.Mesh(new THREE.BoxGeometry(), new THREE.MeshPhongMaterial()); floor.scale.set(5, 0.1, 10); //устанавливаем нужные размеры floor.position.y = -0.5; //указываем координату чтобы он был под ногами scene.add(floor); // добавляем в сцену
Смотрим что получилось:

Как мы видим у нас под ногами пол коричневого цвета.
Управление
Теперь нам нужно осуществить управление. Сделаем его с помощью кнопок WASD. W и S будем ходить вперёд назад. A и D будем поворачивать камеру по вертикальной оси. Сначала будем отслеживать нажатие кнопок WASD и записывать в переменную какая кнопка нажата в данный момент
var keys = < w: false, a: false, s: false, d: false >; //переменная указывает какие кнопки нажаты сейчас function keyDown(e) < //если нажали какую-то кнопку запишем в переменную это if (e.code == "KeyW") < keys.w = true; >else if (e.code == "KeyA") < keys.a = true; >else if (e.code == "KeyS") < keys.s = true; >else if (e.code == "KeyD") < keys.d = true; >> function keyUp(e) < //если отпустили кукую-то кнопку запишем в переменную это if (e.code == "KeyW") < keys.w = false; >else if (e.code == "KeyA") < keys.a = false; >else if (e.code == "KeyS") < keys.s = false; >else if (e.code == "KeyD") < keys.d = false; >> window.addEventListener("keydown", keyDown);//событие нажатие кнопки window.addEventListener("keyup", keyUp);//событие отпускание кнопки
Теперь зная какая кнопка нажата в данный момент, мы можем в нашу функцию анимации добавлять координаты и поворот камеры. Вот как мы изменяем функцию animate
function animate() < var speed = 0.05;//скорость пердвежение if (keys.w && !keys.s)/если нажата w и не нажата s //идем вперет в зависиости от поворота камеры position[0] += speed*Math.sin(rotate); position[1] += speed*Math.cos(rotate); > if (!keys.w && keys.s)/если нажата s и не нажата w //идем назад в зависимости от поворота камеры position[0] -= speed*Math.sin(rotate); position[1] -= speed*Math.cos(rotate); > if (keys.a && !keys.d)/если нажата a и не нажата d rotate += speed; //поворачиваем влево > if (!keys.a && keys.d)/если нажата d и не нажата a rotate -= speed; //поворачиваем вправо > // добавляем ограничения по координатам чтобы мы не могли уйти бесконечно далеко if (position[0] > 2.3) < position[0] = 2.3 >if (position[0] < -2.3) < position[0] = -2.3 >if (position[1] > 4.8) < position[1] = 4.8 >if (position[1] < -4.8) < position[1] = -4.8 >//устанаваливаем координаты камеры camera.position.x = position[0]; camera.position.z = position[1]; //устанавливаем точку куда должна смотреть камера camera.lookAt(position[0]+5*Math.sin(rotate), 0, position[1]+5*Math.cos(rotate)) //эти две строчки уже и так были в той функции requestAnimationFrame(animate); renderer.render(scene, camera); >
Теперь мы можем передивигаться.
Заканчиваем
Теперь же просто для завершённости проекта добавим еще стены и потолок точно по такому же принципу как с полом и покрасим стены в зелёный и потолок в сиреневвый.
var wall1 = new THREE.Mesh(new THREE.BoxGeometry(), new THREE.MeshPhongMaterial()); wall1.scale.set(5, 1, 0.1); wall1.position.z = 5; scene.add(wall1); var wall2 = new THREE.Mesh(new THREE.BoxGeometry(), new THREE.MeshPhongMaterial()); wall2.scale.set(5, 1, 0.1); wall2.position.z = -5; scene.add(wall2); var wall3 = new THREE.Mesh(new THREE.BoxGeometry(), new THREE.MeshPhongMaterial()); wall3.scale.set(0.1, 1, 10); wall3.position.x = 2.5; scene.add(wall3); var wall4 = new THREE.Mesh(new THREE.BoxGeometry(), new THREE.MeshPhongMaterial()); wall4.scale.set(0.1, 1, 10); wall4.position.x = -2.5; scene.add(wall4); var ceil = new THREE.Mesh(new THREE.BoxGeometry(), new THREE.MeshPhongMaterial()); ceil.scale.set(5, 0.1, 10); ceil.position.y = 0.5; scene.add(ceil);
Вот что у нас получилось:

Конечный код
Вот полностью код, который мы написали:
Заключение
Теперь вы знаете как легко создать 3д графику в браузере, даже если вы не хотели создавать игру. 3д графика может пригодиться в проектирование и еще много где. Также в данной библиотеке можно добавлять текстуры, 3д модели и прочее, можно еще сделать управление с помощью мыши и клавиатуры как в шутерах, например. Если вы хотите узнать как это сделать, я могу создать отдельные статьи про это если в голосовании будет много желающих, я сделаю такие статьи. В данной статье я показал лишь основы, чтобы вы знали с чего начать. Спасибо за внимание