Как склеить два объекта в юнити

Добавил пользователь Skiper
Обновлено: 04.09.2024

Приветствую всех друзья! В прошлой статье я закончил обзор основного интерфейса Unity, подробно рассмотрев окно сцены. Сегодня мы поговорим о сценах и игровых объектах более подробно, так как это фундаментальные вещи, которые понадобятся для создания игры.

Unity дает возможность делать игры большому кругу людей заинтересованных в этом. Главной особенностью является то, что вам не нужны годы работы программистом или художником, чтобы начать делать небольшие и интересные игры. Существует несколько основных концепций рабочего процесса в Unity, которые необходимо понять. Однажды выучив и поняв их, вы будете делать игры в кратчайшие сроки. А то время что вы будете экономить – можно потратить на оттачивание и балансировку игры. Первые две концепции о которых я расскажу – это концепция сцены и игрового объекта.

Сцены.

Сцены содержат в себе меню и игровое окружение вашей игры. Они состоят из игровых объектов, о которых мы поговорим ниже. Думайте о каждой новой сцене как о новом уровне в своей игре. В каждой сцене вы размещаете окружение, украшения, препятствия, меню и прочее-прочее, по сути собирая свою игру по кусочкам (уровням).

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

Для того чтобы сохранить сцену необходимо либо в контекстном меню выбрать File/Save Scene , либо сочетанием клавиш Ctrl+S (Windows) и Cmd+S (Mac). Unity сохраняет ваши сцены как ассеты в папке Assets по умолчанию, но я рекомендую сделать внутри папки Assets отдельную папку для сцен и хранить их там. Это также значит, что ваши сцены вы можете увидеть в окне проекта, как и любой другой ресурс игры.

Открыть сцену можно двойным нажатием левой кнопки мыши в окне проекта по ранее сохраненному файлу сцены. Если при этом вы забыли сохранить текущую сцену – Unity спросит вас стоит ли это сделать перед ее закрытием.

Игровые объекты.

Игровой объект – это наиболее важная концепция в Unity. Любой объект в вашей игре будь то персонаж, свет, камера или визуальный эффект — это все игровые объекты. Но сам по себе игровой объект из себя ничего не представляет, ему нужно придать свойства чтобы он стал чем-то большим.

Чтобы наш игровой объект стал деревом, светом или врагом – необходимо придать ему свойства. Свойства мы придаем компонентами (в прошлой статье я уже касался этой темы и объяснял, что такое компонент в Unity). В зависимости от того, какой игровой объект вы хотите создать, вы добавляете необходимые для этого компоненты. Можно также представить игровой объект как пустую кастрюлю, а компоненты ингредиентами, составляющими рецепт вашей игры. Unity имеет большое количество готовых компонентов, а также есть возможность создавать свои с помощью написания пользовательских скриптов (это очень обширная тема которую я еще затрону в будущих статьях).

При создании игрового объекта на него автоматически вешается компонент Transform , это единственный компонент, который невозможно удалить с игрового объекта так как он представляет его в пространстве сцены. Любой другой компонент можно удалить или добавить на игровой объект по своему желанию.

Компоненты можно добавлять, удалять или изменять на игровом объекте. Для того чтобы добавить игровому объекту компонент, выберите его и нажмите на кнопку Add Component , в появившемся выпадающем меню выберите необходимый компонент и добавьте его. Чтобы удалить компонент с игрового объекта нажмите в окне инспектора на его название правой кнопкой мыши, появится контекстное меню, в котором необходимо выбрать пункт Remove Component .

Чтобы изменять параметры компонента, нужно выбрать необходимое поле в окне инспектора и ввести туда необходимые данные (например, для компонента Transform мы можем ввести координаты расположения игрового объекта). Также через контекстное меню мы можем копировать компоненты и вставлять их на другие игровые объекты, а если на нем уже был такой компонент, то он предложит одно из двух действий, либо вставить его как новый, либо просто копировать значения из копируемого компонента в тот что висит на игровом объекте.

Unity поддерживает работу с любыми 3D объектами созданными в стороннем программном обеспечении, но также она умеет сама создавать такие примитивные объекты как куб, сфера, капсула, цилиндр и плоскость. Эти объекты часто используются для быстрого прототипирования игр. Чтобы создать любой из них пройдите в контекстное меню GameObject/3D Objects и выберите любой из них. Тоже самое можно сделать в окне иерархии нажав на пустое место правой кнопкой мыши и выбрав пункт 3D Object .

Как я уже писал немного выше компонент Transform является единственным компонентом, который нельзя удалить с игрового объекта. Давайте посмотрим на его параметры немного более подробно:

1. Position – это позиция нашего игрового объекта в сцене в XYZ координатах

2. Rotation – это вращение нашего игрового объекта в сцене, оно также задается в XYZ, но это уже не координаты, а оси по которым мы поворачиваем наш объект в градусах.

3. Scale – это размер нашего игрового объекта в сцене. По умолчанию он равен 1. Меняется он также по всем 3 осям.

Любой игровой объект можно включить или выключить либо через галочку что на картинке выше (ее можно найти в окне инспектора), либо через код. Когда мы отключаем игровой объект все его компоненты перестают работать. Также если у этого игрового объекта были вложенные объекты (дети), то при его отключении они также перестают функционировать.

Чтобы добавить новый тег нужно выбрать в конце списка пункт Add Tag в открывшемся окне инспектора нажмите + и впишите свой тег. Теперь он есть в списке тегов. Также в Unity по умолчанию уже присутствует несколько тегов (например MainCamera, для определения главной камеры на сцене).

Если игровой объект статично стоит на сцене и никуда не перемещается – то это статический объект. Если же он движется во время выполнения игры – это динамический объект.

Когда вы помечаете игровой объект как статический (галочка напротив пункта Static ), при условии, что он не будет двигаться во время выполнения – такой объект будет экономить вычислительные мощности игрока, так как Unity автоматически оптимизирует работу с такими игровыми объектами.

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

После работы со сценой и проектом в целом не забывайте сохранять изменения. В Unity сохранения делятся на 2 вида:

1. Это сохранение самой сцены

2. Это сохранение различных настроек проекта, а также ассетов и настроек в них

Как сохранить сцену я писал выше. А для сохранения проекта в любой момент выберите в контекстном меню File\Save Project . Также не забывайте – когда вы открыли префаб для редактирования – любое сохранение (как проекта, так и сцены) сохранит изменения в префабе.

На сегодня это все. В следующей статье я расскажу о том, что такое префабы и как с ними работать. Спасибо всем, кто дочитал эту статью до конца, подписывайтесь на канал, ставьте лайки, а для тех, у кого появились вопросы - спрашивайте в комментариях! А если вы хотите помочь данному каналу в развитии – делитесь этой статьей с друзьями в социальных сетях!

Я новичок в Unity3d, у меня есть игра, создающая сцену 3d. Я хочу импортировать 2d объекты (мультфильм с изображением *.jpg или *.jpg) в 3D-сцену, чтобы сохранить производительность. Как это сделать?

Подробнее: Моя игра 3d, но я не хочу использовать все объекты в игре с 3D-объектами для экономии производительности. Для некоторых объектов мне нравится создавать 2d-объект (изображения), такие как деньги, бумага, лист. Какой лучший способ помочь мне сделать это.

Первое, что вам нужно сделать, это сделать образ спрайтом, сделав это, выбрав его в проводнике проекта и изменив его с текстуры на спрайт, затем нажмите применить.

Затем создайте пустой игровой объект (GameObject -> Create empty)

Затем добавьте средство визуализации спрайтов в пустой игровой объект (Component -> Rendering -> Sprite Renderer)

Затем добавьте спрайт в средство визуализации спрайтов.

Не уверен, насколько хорошо он будет работать, чтобы смешать 2d и 3d объекты, подобные этому, если он не работает, вы всегда можете просто создать квадрат (GameObject -> Создать другое -> Квадрат) и добавить изображение в виде текстуры, например, если его 3D-объект,

Как я могу сделать отверстие в объекте с Unity 3D? У меня что-то похожее на этот объект, и я хочу сделать дыру в нем.


2 ответа

Вы не можете. Unity не имеет вариантов моделирования CSG . Вы собираетесь либо:

  1. постройте цилиндр из более мелких деталей.
  2. модель в другой программе
  3. программно перестроить геометрию сетки во время выполнения. ПРЕДУПРЕЖДЕНИЕ: РАСШИРЕННАЯ ТЕМА

Не напрямую. Но есть несколько способов добиться этого:

Вы можете создать свой объект по частям, а затем объединить их в Unity, чтобы вы могли создать отверстие, просто удалив деталь посередине.

Похожие вопросы

Популярные теги



Чтобы физическое поведение было правдоподобной, объект в игре нужно правильно ускорить и задействовать столкновения, гравитацию и другие силы. Встроенный в Unity физические движки обеспечивают вас компонентами для обработки симуляции физики. С помощью настройки всего нескольких параметров, можно создать объекты, которые ведут себя пассивно реалистично (т.е., они будут перемещены в результате столкновений и падений, но не начнут двигаться сами по себе). Управляя физикой из скриптов, вы можете придать объекту динамику автомобиля, машины или даже подвижного куска ткани. На этой странице рассматриваются основные компоненты физики в Unity со ссылками для дальнейшего чтения.
Примечание: На самом деле в Unity есть два отдельных физических движка, один для 3D физики и один для 2D физики. Основные понятия идентичны в обоих движках (за исключением дополнительного измерения в 3D), но они реализованы с разными компонентами. Так, например, существует компонент Rigidbody для 3D физики и аналогичный Rigidbody 2D для 2D физики.

Related tutorials: Physics; Physics Best Practices
See the Knowledge Base Physics section for troubleshooting, tips and tricks.

Компонент в основном используется для управления от третьего или первого лица, где не требуется физика Rigidbody

Capsule Collider состоит из двух полусфер, соединённых между собой цилиндром. Это такая же форма, как и у примитива капсула(Capsule).

Box Collider базовый кубический примитив столкновений.

Character Joints Компоненты в основном используются для эффектов Ragdoll. Они представляют из себя шароподобное соединение, позволяющее вам ограничивать соединения на каждой оси.

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

Constant Force (Постоянная сила) - это быстрая утилита для добавления сил к Rigidbody-объектам. Это отлично работает для одноразовых объектов, вроде ракеты, если вы хотите не начинать с большой скорости, а постепенно ускоряться.

Компонент Fixed Joints

(Неподвижное соединение) ограничивает движение определенного объекта, связывая его с другим объектом. Этот процесс похож на Parenting (определение текущего объекта как “дочерний” по отношению к другому, “родительскому”, объекту), но реализован с помощью физики, а не иерархии компонентов Transform. Чаще всего этот компонент используется в случае, если в определенный момент времени может потребоваться разъединить два объекта, или наоборот, соединить два объекта без необходимости изменения иерархии.

Hinge Joint

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

Rigidbody (Твердое тело)
Твердые тела позволяют вашим GameObjects действовать под контролем физики. Rigidbody может получать силы и крутящий момент, чтобы заставить ваши объекты двигаться реалистично. Любой GameObject должен содержать Rigidbody, на который может влиять гравитация, действовать под действием дополнительных сил посредством сценариев или взаимодействовать с другими объектами через физический движок NVIDIA PhysX.

базовый коллайдер в форме сферы.

Spring Joint (упругое сочленение) собирает вместе 2 Rigidbody тела, сдерживая их движение, будто они соединены пружиной.

Cloth
Компонент предоставляет физическое решение для моделирования тканей и работает совместно с Skinned Mesh Renderer. Несмотря на то, что он был специально разработан для одежды персонажей, все же можно использовать произвольные сетки без кожи.

Wheel Collider
Специальный коллайдер для наземных транспортных средств. Он имеет встроенную систему обнаружения столкновений, физику колес и модель трения шин на основе проскальзывания. Его можно использовать для других предметов, кроме колес, но он специально разработан для автомобилей с колесами.

Terrain Collider
Берёт террейн и на его основе делает коллайдер.

Физический материал (Physics Material) используется для настройки эффектов трения и отскакивания объектов при столкновениях.

(Обратите внимание, что по историческим причинам компонент называется "Physic Material", Физический материал, а не “Physics Material” Физический материал, и поэтому использование необычного имени является преднамеренным. Эквивалентный компонент для 2D, однако, более логично назван “Physics Material 2D” Физический материал 2D.

Читайте также: