Game development
C#
Unity3D
Comments 16
0
Если Вы считаете, что какие-то темы раскрыты поверхностно, просьба написать в комментариях о них поподробнее.

Недостаточно раскрыта тема целесообразности использования шрифта Comic Sans. Раскройте для новичков подробнее, пожалуйста.
0

Ваш OnCollisionEnter вряд ли заработает с первого раза. Ну а на самом деле, я бы посоветовал почитать оф. документацию вместо этой статьи.

0
Ваш OnCollisionEnter вряд ли заработает с первого раза.

Можно поподробнее. У меня работает хорошо.



я бы посоветовал почитать оф. документацию вместо этой статьи.

Напоминает выражение «Гугл в помощь». Вы предлагаете прочитать сначала всю документацию, прежде чем разработчик начнет что-то делать?
0
Не всю, а руководство начинающего. На это уйдёт не более получаса.
Можно поподробнее

Необходимо правильно подобрать параметры rigidbody, collider (и подобрать его). Если, например, вы сделаете пулю, то она просто пролетит сквозь персонажа, т. к. она двигается быстрее fps*colliderSize.
+1
Вы предлагаете прочитать сначала всю документацию, прежде чем разработчик начнет что-то делать?

Ровно так и сделал, когда выбирал-перебирал движки. Когда дошла очередь до Unity, потыкал в интерфейс, посмотрел всякие демки, подумал "кажется это оно", и полез читать мануал от начала до конца. Простые темы — целиком, сложные для восприятия — по диагонали, чтобы иметь общее представление и знать, куда в будущем смотреть. Всего пару дней/вечеров заняло. Сняло много глупых вопросов и дало много идей, что и какими способами можно сделать.


Чтение мануала позволяет быстро превратиться из тупого слепого котёнка в новичка. Экономит больше времени, чем занимает. Рекомендую.

+6
Стоило бы упомянуть, что добавление своего контента в проект (модели, текстуры, звуки и прочее) происходит через вкладку Assets вверху экрана. Через пункт Import New Asset... При этом стоит следить, чтобы в списке папок проекта перед этим действом была выбрана нужная, куда вы хотите сбросить этот файл. Если лень заводить свои папки, то хотя бы выбирать саму папку Assets — там его проще будет потом найти.

Кроме визуально представленных источников света есть ещё глобальные настройки света: вкладка сверху Window, пункт Lighting, подпункт Settings. Там можно, например, подкрутить освещение окружения, установить скайбокс, добавить туман. Собственно, именно сюда нужно заглянуть, если вы задались вопросом «удалил все источники света, а на сцене всёравно светло, как днём». Кстати, в эти настройки можно залезать уже во время того, как в редакторе запущена игра, чтобы сразу, на лету, видеть изменения. Правда, после закрытия игрового режима настройки вернутся к тому состоянию, какими они были до запуска игрового теста. Так что придётся снова залезть в это окно и откорректировать значения. Полезная деталь — если вам, допустим, хотелось поменять цвет освещения (Ambient color в группе Environment Lighting), то на панели с палитрой обратите внимание на пункт Hexadecimal — там в окошке указан номер текущего цвета, можно скопировать его и позднее вставить в это же поле, когда игровой режим будет выключен. Этот же трюк пригодится для настройки цвета тумана и так далее.

Подобным же образом, находясь в запущенном в игровом режиме, можно менять какие-то параметры у объектов через редактор — значения переменных скриптов вынесенные в зону видимости, включение/отключение рендера сетки объекта и так далее. Главное не увлекаться, чтобы чего-либо не сломать. После выключения игрового режима изменённые значения восстановятся. Это не касается некоторых отдельных элементов, например, если вы во включенном игровом режиме редактировали текстуру террайна, то её изменения сохранятся.

Не думаю, что начинающим понадобится постпроцессинг. Лучше им для начала знать, что чтобы повесить новые компоненты на объект надо выбрать его и справа, в инспекторе нажать на кнопку Add Component. Она располагается ниже всех прочих прикреплённых к объекту компонентов. В открывшемся списке компоненты разбиты на группы, тут же вы найдёте и скрипты, включая ваши собственные.

Не всегда для персонажа требуется использовать rigidbody, методы управления могут быть разные. А вот коллайдер для персонажа потребуется почти всегда, если только вы не собрались высчитывать столкновения более хитрым способом. Так же в Unity есть несколько специфических контроллеров/коллайдеров — лучше почитать документацию, чтобы подробнее в них разобраться. Но начать лучше с простых примеров на ютубе.

Что касается тех объектов, с которыми персонаж сталкивается. Mesh Collider обычно следует вешать на те объекты, сложная форма которых вам так или иначе важна для учёта столкновения. Если это просто кнопка, то лучше обойтись коллайдерами попроще, вроде Box Collider. Кроме того вам, возможно, придётся для особо сложных 3д объектов делать более простую, невидимую, сетку столкновений и вешать Mesh Collider на неё, а не на сам видимый объект.

Про кнопки-коллайдеры стоит помнить, что в их компоненте коллайдера нужно поставить флажок на пункт Is Trigger, чтобы скрипт вобще мог обработать событие нажатия. Всяким бочкам, ящикам и прочим объектам, которые должны просто красиво физически реагировать на столкновения и падать под действием гравитации надо назначать компонент rigidbody.

Для импорта моделей из Blender, как уже говорилось, лучше делать экспорт модели в формат fbx. Формат blend Unity тоже поймёт, но fbx предпочтительнее. Перед экспортом убедитесь, что вы убрали лампы и камеры со сцены (можно посмотреть в аутлайнере на предмет невидимых/скрытых элементов). Обратите внимание, что если на модель назначены материалы блендера, то они в упрощённом виде перенесутся тоже и будут захламлять список материалов.
Можно вовсе не делать сложные развёртки и текстурирование в Blender'е — более простой способ это пройтись по всем элементам модели и для каждой выбрать в окне справа пункт Data. Это значок в виде смотрящего вниз треугольника с тремя точками, между пунктами Modifiers (гаечный ключ) и Material (розовый шарик). В нём нажимаете на + рядом с графой UV Maps — там появляется автоматическая развёртка со значком шахматного шарика. Это нужно сделать для каждого элемента модели и только после этого делать экспорт. Тогда уже в Unity на эту деталь можно будет наложить материал с тайловой текстурой, а если этого не сделать, то материал будет лишь окрашивать деталь в сплошной цвет. (Если вы позднее деформировали элемент модели, то сбросьте развёртку и переназначьте заново, чтобы она не была растянутой).

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

Как по-простому текстурировать модель. Для начала вам хватит каких-нибудь тайловых текстур 512 на 512. Добавляете её так же, как и 3д модель, через Import New Asset (помните, что должна быть выбрана подходящая папка). При этом справа, в инспекторе, у добавленной текстуры в окне Default выставляете параметр Max Size в 512. И затем жмёте Apply. Теперь текстура готова для того, чтобы добавить её в материал или, допустим, ею теперь можно раскрашивать террайн. Обратите внимание на самый первый пункт — Texture Type, сейчас он в дефолтном режиме, но когда вам понадобится загрузить карту нормали, изображение для полупрозрачного спрайта, и так далее, то потребуется там выставить соответствующую настройку.
Далее нам понадобится создать материал. Заходим опять в меню сверху — Assets, выпадающий список Create, Material (опять не забудьте, что материал создастся в той папке, которая выбрана сейчас). Вбиваете название материала и в инспекторе открываете пункт Albedo (на других параметрах пока не будем останавливаться, но принцип схож), где ищете и назначаете свою ранее загруженную текстуру. Рядом есть окошко цвета, которым можно дополнительно подкрасить вашу текстуру, а также ползунки Metalic и Smoothness, чтобы добавить блики или матовость. Также пригодится параметр размера тайлов Tiling, он находится на несколько строк ниже.
После того как материал создан можно хватать его и перекидывать прямо на модель или её элементы, только не промахнитесь, а то покрасите не то, что нужно.

Не забывайте что одна и та же текстура может быть использована в разных материалах. Допустим, с примесями разного цвета и/или разным размером тайлов.

Префабы. Обычно префаб делается примерно так — перетащили объект на сцену, потом зацепили его имя в окне иерархии и перетащили внутрь папки. Тогда там появится префаб на основе объекта, в инспекторе у префаба будет значок синего кубика и ниже тега будет так и подписано, Prefab.
Однако, вам незачем обязательно сразу всё делать префабами. Вы можете бросить объект на сцену, затем расклонировать его копипастом и тестировать прямо так. Если всё устраивает, то переводите объект в префаб, если нет, например в модели выявился какой-то баг, то удаляете её копии со сцены, саму модель из папки, исправляете в 3д пакете и импортируете заново.

Вы также можете засунуть внутрь префаба, выставленного на сцену, какие-то новые дочерние элементы. При этом они не станут полноценной его частью, то есть не повлияют на прочие копии этого префаба, пока вы не нажмёте кнопку Apply в инспекторе на строчке с названием Prefab.
+4
в конце добавляется префикс

Замечу, что префикс по определению добавляется в начале (перед чем-то, pre). В данном случае добавляется суффикс (постфикс).
0

Товарищ автор, если вы не понимаете почему у статьи такой рейтинг, как мне кажется, причина та же, что и у вашей предыдущей статьи:


1) Очень поверхностно
2) Слишком широко
3) Местами просто неверно


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


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


Третий пункт отметает полных новичков — потенциальный вреда от неправильного совета перевешивает пользу от поверхностных описаний.

0
marsermd, Благодарю за объяснение.

1) Очень поверхностно

Согласен, буду писать более развернуто в спойлерах.

2) Слишком широко

А расширение компетенции плохо для читающих?

3) Местами просто неверно

Человек не может знать абсолютно все. Выбор каждого инструмента разработки будет находить положительные оценки у одной части аудитории и отрицательные у другой.
И как гласит пословица, тот не ошибается, кто ничего не делает.
Буду искать людей, которые могли бы указать на ошибки в статьях до публикации.
0
Есть люди которые в одиночку делают игру. Они же и в блендере модели делают, и код пишут, и разверстку накладывают. Узнал пару полезных моментов.
+1
Для упрощения работы с наборами одинаковых объектов их можно объединять в группы, где в качестве родителя выступает пустой объект.

А вот сами юнитеки советуют так НЕ делать, т.к. движение любого трансформа в иерархии помечает всю иерархию как требующую пересчёта, что в итоге приведёт к тратам ресурсов на обновление даже тех трансформов которые не двигаются.
Тоже вместо этой статьи порекомендовал бы документацию и официальный канал Unity на ютюбе, там просто тьма разных гайдов и best practicies почти на любую тему
+1
Естественный свет (Directional Light) — аналог Солнца

Естественный? В смысле ведет себя естественно? Чем Point Light не естественный? Этот термин, тогда, скорее подходит для Ambient Light (Sky Light). Но, Ambient Light это окружающее (фоновое) освещение.

Все таки, я думаю, свет направленный.
-2
Point Light скорее является искусственным источником. Естественный свет исходит от материальных объектов, например, от Солнца.

Да, лучше придерживаться точного перевода. Спасибо.
+1
Требуется посмотреть сцену с разных углов? Воспользуйтесь Гизмо (Gizmos).

А в контексте редактора, Gizmo — это метки (линии, фигуры, иконки). В качестве управления объектом(-ами) на сцене используется Handles. Лучше поправить этот момент, чтобы не было подмены понятий.
0
Не всегда для персонажа требуется использовать rigidbody, методы управления могут быть разные. А вот коллайдер для персонажа потребуется почти всегда

Опять же — юнитеки говорят «шевелишь коллайдером — добавляй ригидбоди». Либо неподвижный статик, либо ригидбоди на коллайдере. Иначе есть оверхед при движении коллайдера.
0
Однако, вам незачем обязательно сразу всё делать префабами. Вы можете бросить объект на сцену, затем расклонировать его копипастом и тестировать прямо так

А если из префаба делать клонов, то правка префаба изменяет все копии (в редакторе).
Only those users with full accounts are able to leave comments., please.