Перейти к контенту

Mr_God

Проверенные
  • Число публикаций

    102
  • Регистрация

  • Последнее посещение

7 подписчиков

О Mr_God

  • Звание
    Mr_Ctrl+V
  • День рождения 09.03.2000

Контакты

  • Сайт
    https://vk.com/mr_god_tgp
  • Skype
    mr_god09032000

Информация

  • Реальное имя
    Алексей
  • Город
    Новосибирск
  • Интересы
    Программирование на C#,GameDev.

Недавние посетители профиля

1 169 просмотров профиля
  1. Тема N1

    @HellRatz Смотри, я упоминал ранее ассеты где сделали физику для авто, в принципе вот один из таких ассетов https://youtu.be/rx_FSMMnjfo
  2. Тема N1

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

    Скоро будут, я сейчас рассчитываюсь с долгами по учёбе, которые остались с первого курса,всё время на них уходит, думаю на следующей неделе смогу продолжить писание статей по азам Unity. Тут пару недель назад была дискуссия про создание "гонок", думаю на Unity можно было-бы сделать такое, я в код могу, уже как никак год работаю, но не сейчас, у самого слишком много работы по другим проектам, да и учёба в добавок. Школота она такая.
  4. Все о фильме "Ф.О.Т.О.Г.Р.А.Ф."

    Интересно, по крайней мере я не хотел по началу смотреть трейлер дабы не травмировать свою психику, по понятным причинам(обилие недофильмов на YouTube, хотя-бы), но потом подумал раз на АМК есть статья то видать что-то годное, по крайней мере можно это смотреть, посмотрев трейлер я был немного шокирован(В хорошем смысле), а шокирован именно от того что всё довольно качественно сделано, трейлер мне понравился, жду.
  5. Напарники для модостроительства

    Требуются аниматоры НПС для проекта S.T.A.L.K.E.R.: Step in Depth. Писать по всем вопросам в ЛС.
  6. Обсуждение темы "Азы Unity"

    И ещё, сразу скажу, если хотите получить помощь достаточно быстро, в течении одного дня то можете мне написать в ЛС в ВК, ссылка на страницу есть в моём профиле тут на АМК. Просто я на АМК сейчас довольно редко бываю, и не могу тут писать довольно часто, как хотелось бы.
  7. Азы Unity

    Создание первой игры на Unity: Часть 2. Сложность: Легко. Версия движка:5.6.2f1. В этом уроке мы продолжим создавать управление для FPS. А именно стандартное управление персонажем в стиле WASD, для перемещения игрока в мире. Т.к. у нас уже есть своя сцена то продолжим с неё. Первым делом нужно добавить компонент CharacterController к капсуле, что-бы можно было передвигать персонажа с помощью кода. Зайдите в меню добавления компонента и в пункте Physics выберете компонент CharacterController. Добавили? Молодцы. Если не смогли найти данный пункт то вот он. Дальше создаём скрипт с названием FPSInput. После создания объявляем сразу две переменные, x,y типа float. Примерно вот так. К прочтению!!! Дальше создаём публичную переменную для нашего компонента CharacterController. Дальше создаём трёхмерный вектор. Дальше создаём блок Update.(В нём код выполняется каждый кадр) Дальше присваиваем переменным x,y значения от нажатия клавиши, в данном случае метод GetAxis() из известного нами интерфейса Input возвращает какое-либо значение от тех кнопок которые указаны в настройках проекта, а в скобках указывается именно название элемента управления, Вам может показаться это очень странным но сейчас на этом не будем заострять внимание. Нужно присвоить X значение от клавиш по горизонтали, а Z по вертикали, следующий код делает именно это. Дальше присваиваем вектору получившиеся значения. Перед тем как передвинуть наш объект, нужно направить вектор в ту сторону, в которую смотрит наш объект.Сделать это можно следующей командой. Дальше уже с помощью ранее созданной переменной типа CharacterController мы передвигаем наш объект на те значения которые в векторе. Сохраняем скрипт, в переменную в инспекторе перетаскиваем компонент CharacterController и запускаем, радуемся тому что можем бегать. Всё, данная часть урока закончена, до новых встреч.
  8. Обсуждение темы "Азы Unity"

    Ты во первых объявил не ту переменную, ты объявил переменную min для оси Y что не нужно было делать, так как тебе нужно ограничивать переменную только по оси X, во вторых не объявил переменную maxVertX. Вот код. using System.Collections; using System.Collections.Generic; using UnityEngine; public class MouseLook : MonoBehaviour { public float senHorX; public float senHorY; public float maxVertX; public float minVertX; public GameObject parent; public GameObject child; float x; float y; void Update () { x -= Input.GetAxis ("Mouse Y") * senHorY * Time.deltaTime; y = Input.GetAxis ("Mouse X") * senHorX * Time.deltaTime; x = Mathf.Clamp(x, minVertX, maxVertX); parent.transform.localEulerAngles = new Vector3(0, parent.transform.localEulerAngles.y + y, 0); child.transform.localEulerAngles = new Vector3(x, 0, 0); } }
  9. Обсуждение темы "Азы Unity"

    Два раза использовал переменную, почему-бы и да? Всё работает, по крайней мере у меня, сейчас посмотрю что не так в коде у товарища Максим_01 Тогда у тебя не будет работать ограничение по оси X, что приведёт к плохим последствиям в виде поворота на безграничное гол-во градусов головы, что плохо.
  10. Азы Unity

    Создание первой игры на Unity: Часть 1. Сложность: Легко. Версия движка:5.6.2f1. После того как Вы зайдёте в редактор движка Вам однозначно станет интересно что можно сделать в нём, я по секрету скажу многое, но делать BF4 мы не будем, зато сделаем свой маленький шутер,Вы спросите почему именно шутер, а не какой нибудь там платформер, я скажу что это было-бы слишком легко для начала, а вот сделать проект после которого можно будет браться за любые другие проекты можно, и это не будет трудно. А теперь о целях данного урока, в этом уроке я расскажу как можно сделать самое примитивное управление персонажем а именно вертеть "головой". Для начала создадим основу игрока, в данном случае это можно сделать несколькими путями, но результат будет один и тот-же. За основу я выберу капсулу, почему капсулу? Потому-что она больше подходит для имитации формы человека. Что-бы создать капсулу кликните в иерархии ПКМ(Не пулемётом, а правой кнопкой мыши) по пустому месту и у Вас появиться следующее окно. Далее жмём на пункт "3D Object' и выбираем пункт "Capsule", вот скриншот того где лежит эта самая капсула(для самых маленьких). После того как нажали на капсулу она должна появиться на сцене и в иерархии. Если не видно на сцене то щёлкаем в иерархии на объект с названием "Capsule" и жмём сочетание клавиш shift+f, тогда Ваша капсула должна быть видна в сцене. Примерно так должна выглядеть сцена после того как Вы добавите капсулу. Теперь нужно эту капсулу переместить в нулевые координаты на карте, для этого щёлкнем в иерархии на объект капсулы и посмотрим в окно инспектора. Окно инспектора выделено красной рамкой. В нём есть несколько раскрывающихся окон, нам нужно окно "Transform". В данном окне указаны координаты объекта, его градусы поворота и размер. Следует заметить что в данном случае у объекта глобальные координаты. Вы спросите какие бывают ещё координаты, я отвечу локальные, Вы спросите в чём разница, я отвечу что глобальные координаты являются координатами самого первого "родителя" в группе объектов, как в Unity такие объекты называются по научному я не знаю, но я знаю что в других программах(движках, 3Д редакторах и прочих программах) они называются Рут нодами или Root node, т.е. главная нода(не узел, а нода) в цепочке нод. Локальные же координаты это координаты "ребёнка" в "родителе", т.е. отсчёт идёт от координат "родителя". Вы спросите кто эти все "Родители" и "Ребёнки", "Родителем" является объект в котором есть вложенный в него объект("Ребёнок"), при этом Родитель может являться и "Ребёнком". Увидеть расположение объекта по координатам можно тут. Ещё обращу внимание что у Rotation есть четвёртый параметр, это ось w, о ней поговорим потом. С размером ничего особенного не происходит. У любого объекта координаты располагаются в трёх осях, это X,Y,Z, X - перемещение объекта в право/влево, Y - перемещение объекта вверх/вниз, Z - перемещение объекта вперёд/назад. Теперь после того как Вы узнали что за что отвечает в Transform'e сделайте координаты капсулы нулевыми по всем осям. Просто щёлкните на поле со значениями и введите везде нули в "Position". Сделали? Отлично. Теперь создайте сферу и обнулите её координаты. После того как обнулили координаты переместите сферу в капсулу, сделать это можно просто щёлкнув ЛКМ по сфере и зажав кнопку перетащить сферу в иерархии на капсулу. Всё , Вы сделали сферу "Ребёнком" капсулы и у Вас должно получиться примерно следующее. Теперь нужно сделать главную камеру(это объект под названием "Main Camera") дочерней для сферы, но перед этим обнулите её координаты. Готово? Отлично. Так должна выглядеть сцена с иерархией после всех преобразований. Как Вы заметили "голова" смотрит из центра тела, это не дело, переместите сферу на один юниметр(юниметр равен одному метру) вверх и "голова" будет на месте, теперь стоит отключить отображение меша. Сделать это можно отключив компонент "Mesh Renderer" в инспекторе. Сделать это можно нажав на чек-бокс(кубик с галочкой) около названия компонента в инспекторе объекта. Проделав все манипуляции всё должно выглядеть так. Теперь осталось добавить пол. Нужно добавить примитив "Plane" и переместить его на нулевые координаты. После того как поместили "Plane" в нулевые координаты нужно поднять капсулу на 1 метр Должно получиться примерно так. Всё, подготовка закончена, можно приступать к скриптингу. Скрипты будем писать на C#. Первый скрипт который мы будем писать это скрипт на осмотр окружающего пространства. Что-бы создать новый скрипт нужно нажать в окне с ассетами ПКМ и выбрать пункт "Create" из выпадающего списка выбрать пункт "C# script" и создаться новый файл скрипта, при создании нового файла ему можно сразу-же прописать "имя", в данном случае мы удалим стандартное "NewBehaviourScript" и напишем "MouselLook". После этого щёлкаем дважды на файл скрипта и у Вас должна открыться MonoDevelop(Далее MD), это стандартная IDE поставляемая с Unity, но я буду работать с Visual Studio 2015(Далее VS), для кодинга вообще можно использовать и блокнот, но так как Вы новичок( наверное, я предполагаю что Вы ничего не знаете что и как настраивать) то желательно работать в IDE, я выбрал VS так как она намного удобнее для программирования под Unity на C#, ну да ладно, от лирики к делу, если хотите кодить на VS то её нужно скачать и установить, и установить дополнительные пакеты для работы под Unity, после того как всё сделали переходим в Unity и жмём в меню на пункт "Edit" а далее в выпадающем списке выбираем пункт "Preferences", открывается следующее окно. Переходим в пункт "External Tools" и жмём на кнопку в чёрной рамке и выбираем из списка VS. Всё, закрываем данное окно, настойка завершена. Открываем скрипт в VS и видим примерно следующее. Объяснять синтаксис я не буду, если надо вести уроки по шарпу то могу устроить и их, но сейчас не буду. Приступаем к делу. Объявляем две переменных(тип float) отвечающих за чувствительность мыши. Я назову их senHorX и senHorY. Теперь нужно создать две переменные(тип float) для ограничения вращения "головы" по координате X(X в rotation это вертикаль, Y горизонталь) их я назову minVertX и maxVertX, теперь добавим две переменные типа GameObject, это переменная хранит в себе информацию о любом игровом объекте, в данном случае мы будем использовать данные переменные для того что-бы вращать родитель по оси Y, а ребёнка по оси X. я их назову child и parent соответственно. После всего этого нужно создать две переменные для значения получаемые от мыши, я их назову x,y. Вот что должно быть после всех телодвижений. Теперь нужно присвоить значения получаемые от мыши значениям переменных x,y. Выглядеть всё это дело будет так. Что-же такое я написал? разберём строчку x = Input.GetAxis("Mouse Y"); Тут присваивается переменной x значение функции GetAxis(название оси) из интерфейса Input, интерфейс Input ответственен за приём сигналов от устройств ввода, метод GetAxis принимает в качестве параметра название ось мыши и возвращает её значение переменной которой он присваивается. Что-бы было какое-то ускорение(замедление) поворота головы при движении мыши мы умножим значение GetAxis(название оси) на переменную созданную ранее, а именно senHor(название оси). Что-бы значение изменялось одинаково при любом FPS мы используем Time.deltaTime, переменная deltaTime интерфейса Time возвращает значение времени прошедшее за последний кадр, а интерфейс Time отвечает за действия со временем в данном движке. После всего что мы сделали должно получиться следующее. Но перед тем как приступить к дальнейшей писанине нужно подправить код, а именно дописать - перед = в 18 строчке, что-бы получилось что мы не присваиваем, а вычитаем из данной переменной значение что-бы потом не мучить себя в будущем. Вот скрин. Переходим к ограничиванию переменной x. Присваиваем x результат работы следующей строчки Mathf.Clamp(x, minVertX, maxVertX); Что-же тут происходит? Мы используем функцию Clamp из структуры Mathf которая принимает в качестве первого параметра текущее значение и ограничивает его минимальным/максимальным значением, если изначальное значение больше максимального или меньше минимального то значение принимает тот или иной предел. Всё должно выглядеть так. теперь переходим к самому главному, повороту объекта, сделать это можно следующим образом. для родителя :parent.transform.localEulerAngles = new Vector3(0, parent.transform.localEulerAngles.y + y, 0); и для ребёнка:child.transform.localEulerAngles = new Vector3(x, 0, 0); разберём код для родителя и для ребёнка в общих чертах, мы берём переменную класса GameObject и вызываем свойство transform(это свойство содержит различные данные о Transform компоненте объекта которые можно использовать) дальше вызываем свойство localEulerAngles(это свойство как раз содержит данные rotate из компонента transform в объекте) что-бы изменить эти данные(они типа Vector3, Vector3 это тип данных который содержит три числа x,y,z) нужно присвоить данной переменной переменную данного типа, что и происходит после знака = . отличия лишь в том что у родителя идёт присвоение переменной которая равна сумме значений старого значения и переменной y, а у ребёнка сразу готовое финальное значение. Вот скрин. Теперь после того как мы дописали данный скрипт можно его сохранить и переходить в редактор, после некоторого количества времени ожидания скрипт скомпилируется и можно будет запускать игру и повертеть мышкой что-бы увидеть что скрипт работает, но не забудь добавить скрипт к объекту, сделав это можно просто перетащив скрипт на любой игровой объект, желательно на сферу, после того как перетащили скрипт, нужно заполнить пустые значения в инспекторе. Всё выглядеть должно так. Всё, можно запускать игру. Вот скрин. Всё, я завершаю данную часть этого урока.
  11. Азы Unity

    Интерфейс Unity : Часть 2. Сложность: #ОченьЛегко Версия движка:5.6.2f1 В этом уроке я продолжу рассказывать о интерфейсе в Unity. Так как в предыдущем я полностью объяснил Вам что и где отвечает в лаунчере, то в этом уроке я расскажу Вам о том что и где находиться в редакторе. При открытии редактора Вы увидите следующее окно, это и есть главное окно редактора Как видите тут довольно много окон и вкладок. Сейчас я расскажу что означает каждое окно и для чего оно нужно. 1)Окно редактора сцены, в нём находятся те объекты которые будут в игре 2)Иерархия объектов расположенных на сцене. 3)Иерархия папок расположенных в папке проекта 4)Собственно файлы расположенные в выбранной папке из окна 3 5)Инспектор свойств выбранного объекта на сцене 1)Окно в котором отображается сама игра(т.е. вид из камеры) 2)Окно консоли, полезная вещь для дебага игры В жёлтой рамке находится меню редактора. В зелёной рамке находиться панель инструментов. В синей рамке находиться окно для анимирования игровых объектов внутри редактора Всё что ниже красной линии используется для вывода последнего сообщения из консоли. В красной рамке находиться окно аниматора, в данном окне можно настраивать логику анимаций в контроллере(расскажу об этом в уроке посвящённом анимациям в Unity) Переходим к меню, сейчас рассмотрим вкладку File. 1)Создать новую сцену. 2)Открыть ранее созданную сцену. 3)Сохранить сцену. 4)Сохранить сцену как... 5)Новый проект(при этом закроется этот). 6)Открыть проект. 7)Сохранить проект. 8) Настройки сборки. 9)Сборка и запуск сборки. 10) Выход из редактора. Далее у нас вкладка Edit, она отвечает за различные манипуляции с объектом в редакторе(и не только) 1)отменить действие(у меня уже были сделаны некоторые действия, надпись в оргинале выглядит немного по другому). 2)вернуть отменённое действие. 3)Вырезать. 4)Копировать. 5)Вставить. 6)Дублировать. 7)Удалить. 8)Подсветка в иерархии выбранного объекта. 9)Центрировать камеру на выбранном объекте. 10)Активирует курсор в окне поиска 11)Выбрать все объекты в иерархии. 12)Персональные настройки в Unity(Скины, выбор IDE для работы с кодом и прочее) 13)Модули(установка, проверка состояния и прочее) 14)Запуск игры. 15)Пауза в игре. 16)Остановка игры(выход). 17)Войти в аккаунт Unity. 18)Выйти из аккаунта Unity. 19)Загрузка/Сохранение списка выбранных объектов. 20)Различные настройки проекта, поговорим о них позже. 21)Эмуляция графики. 22)Эмуляция сети. 23)Настройки использования "жёсткого" режима перемещения,вращения,увеличения размера объекта. Переходим ко следующему пункту, assets. 1)Создать какой-то объект. 2)Открыть в проводнике. 3)Открыть файл. 4)Удалить файл. 5)Открыть сцену(В иерархии она появиться ниже открытой). 6)Импортировать новый ассет. 7)Импортировать ассет(из стандартного набора). 8)Экспортировать ассет. 9)Нахождение ссылок на файл из папки с ассетами в данной сцене. 10)Выбор зависимостей. 11)Обновить. 12)Повтор импорта ассета. 13)Повтор импорта всех ассетов. 14)Запуск обновления API. 15)Открыть C# проект в IDE которую вы используете. В окне component можно добавить компонент к выбранному объекту на сцене. Следующее окно с возможностью добавления окон редактора. 1)Сцены. 2)Игры. 3)Инспектора. 4)Иерархия. 5)Проект 6)Анимации 7)Ассет стор. 8)Аниматор. 9)Навигация. 10)Консоль. 11)Макеты(Стандартные возможности кастомизации окон редактора) Следующее окно Help содержит в себе различную информацию о движке и т.д., стандартное окно во многих программах. На этом данная часть урока завершена. Дальнейшее изучение интерфейса будет по мере продвижения в уроках по данному движку. P.S. В этом уроке я показывал окно редактора движка, я забыл что уже немного кастомизировал его, извиняюсь перед теми кто открыл редактор и увидел не то что у меня есть на скриншотах.
  12. Тут можно обсудить любые уроки из темы "Азы Unity", задать вопрос автору и прочее.
  13. Азы Unity

    Образец для уроков: Название. Сложность(очень лёгкая, лёгкая, средняя, сложно, очень сложно) Текст урока(либо видео, либо и то и то, картинки тоже можно использовать) Вопросы по урокам лучше задавать либо в ЛС автору, либо в теме отведённую для этого. Обращаю внимание что это только образец, если Вы хотите сделать по своему то пожалуйста, но только что-бы было логично всё и понятно сразу что за урок и про что он. Флуд буду удалять.
  14. Азы Unity

    Интерфейс Unity : Часть 1. Сложность: #ОченьЛегко Версия движка:5.6.2f1 В данном уроке я расскажу в целом что за что отвечает в интерфейсе движка. p.s. Если вылезло следующее окошко при запуске то в конце данного поста есть инструкция и по этому окну При запуске движка Вы видите следующее окно В этом окне есть две вкладки, первая проекты, в них собственно говоря можно увидеть свои проекты, и те проекты которые есть на облаке. Как можно было заметить под данной вкладкой есть две кнопки, первая On Disk это список тех проектов которые хранятся на локальном диске и In The Cloud список тех проектов которые хранятся на облаке, при этом один и тот-же проект может храниться и там и там. Цифра около "In The Cloud" означает сколько проектов в облаке не хранятся на локальном диске, именно скачанных напрямую из движка(насколько я понял). Так как у меня уже есть проекты то список проектов можно увидеть тут Переходим теперь к самим проектам в данном окне. Красный цвет означает название проекта. Зелёный путь к папке с проектом. Синий версия Unity используемая при последнем запуске данного проекта, есть одно замечание, Unity более свежих версий может открывать проекты старых версий, но Unity старых версий не может открывать проекты Unity более новых версий, к примеру Unity 2017 откроет проект созданный в Unity 5.6.2f1, но Unity 5.6.2f1 не может открыть проект созданный на Unity 2017, насчёт патчей не знаю, по логике должно быть так-же. Теперь перейдём к вкладке "Learn" Как ясно из названия там раздел обучения данному движку. На английском. Во вкладке "Get Started" находиться видеоролик от юнитехов, в нём есть информация обо всём Во вкладке "Tutorials" находятся проекты туториалов от юнитехов, простые но верные способы что-то изучить. Во вкладке "Resources" находятся различные ассеты. Во вкладке "Links" ссылки на другие туториалы от юнитехов. С этой вкладкой Вы разобрались и теперь пора переходить к созданию нового проекта. В зелёном кружке кнопка "создать новый проект", в синем загрузить проект(открывается обычное окно в котором нужно выбрать папку с проектом). При этом если щёлкнуть на проект из списка то он начнёт загружаться.(данное окно закроется и начнётся загрузка редактора с проектом) При щелчке на "New"(новый проект) появиться следующее окно Теперь разберёмся что это всё означает. В поле ввода подчеркнутое красным нужно вводить название проекта. В поле ввода подчеркнутое зелёным нужно вводить путь к папке в котором будут проекты(по умолчанию указанна папка в Windows по названием "документы", Вы же можете указать любую другую папку. В поле ввода подчеркнутое синим вводите название Вашей организации. Два выколотых кружка подчеркнутых жёлтой линией означают какое измерение будет использовать Ваш проект по умолчанию, сменить данную настройку можно очень быстро в самом редакторе. Теперь переходим к следующим кнопкам. Красным подчеркнута кнопка выбора ассетов которые будут сразу использованы при создании проекта. Синим подчеркнут переключатель on\off включения аналитики проекта самим движком. Жёлтым подчёркнута кнопка отмены создания проекта Зелёным подчёркнута кнопка создания проекта. Переходим к аккаунту в Unity. Насколько я помню при первом запуске лаунчера должно появиться следующее окно Сейчас разберёмся что к чему тут. Зелёным подчёркнуто то что без входа в аккаунт Вы не сможете скачивать ассеты с ассет-стора, и использовать функции облака(и прочие плюшки) от Unity. Синим подчёркнуто окно ввода почты на которую зарегистрирован аккаунт. Красным подчёркнуто окно ввода пароля от того-же аккаунта. Синим подчёркнута кнопка работы в офлайн режиме. Красным подчёркнута кнопка входа в данный профиль. В синей рамке ссылка на восстановление пароля от аккаунта. В зелёной рамке ссылка на страницу с повтором отправления письма на почту с подтверждением аккаунта В красной рамке можно выбрать запомнить данные для входа или нет На этом первая часть данного урока закончена. Следующая будет про интерфейс самого редактора.
  15. Азы Unity

    В этой теме можно будет найти уроки от @Mr_God и прочих людей по данному движку. Уроки будут разной степени сложности.
×