Объединение объектов в unity 3d
Народ, подскажите как (если это возможно) объединить объекты в Unity3d так, что они считались одним объектом (с одним именем). Надо чтоб при включении/отключении рендера мешей и коллайдеров пропадал весь объект, созданный из нескольких
Голосование за лучший ответ
Сделай группу объектов дочерними одному трансформу, включай-выключай этот трансформ.
Дмитрий СадчиковЗнаток (315) 8 лет назад
Спасибо. А не подскажите как это сделать? Просто в юнити совсем недавно (для дипломной работы нужен)
Александр Парамонов Мыслитель (7500) childObj.transform.parent = parentObj.transform;
создать массив. Пишешь GameObject[] название = условие которым обладают все объекты. Ну по тегу например GameObject.FindGameObjectsWithTag(«тег»)
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Fixed Joint
Компонент Fixed Joints (Неподвижное соединение) ограничивает движение определенного объекта, связывая его с другим объектом. Этот процесс похож на Parenting (определение текущего объекта как “дочерний” по отношению к другому, “родительскому”, объекту), но реализован с помощью физики, а не иерархии компонентов Transform. Чаще всего этот компонент используется в случае, если в определенный момент времени может потребоваться разъединить два объекта, или наоборот, соединить два объекта без необходимости изменения иерархии.

Свойства
| Свойство: | Функция: |
|---|---|
| Connected Body | Необязательная ссылка на другой объект с Rigidbody, к которому присоединяется текущий объект. Если поле оставить пустым, объект присоединяется к заданной точке в пространстве. |
| Break Force | Сила, которую надо применить к соединению, чтобы сломать его. |
| Break Torque | Крутящий момент, который надо применить к соединению, чтобы сломать его. |
| Enable Collision | Если включено, то включаются коллизии между телами связанными соединением. |
| Enable Preprocessing | Disabling preprocessing helps to stabilize impossible-to-fulfil configurations. |
Детали
При создании игр иногда возникают случаи, когда требуется, чтобы объекты двигались вместе (временно или постоянно). Компоненты Fixed Joint позволяют упростить реализацию подобных ситуаций, поскольку вам не приходится менять положение объекта в иерархии с помощью скриптов. Минус подобного решения в том, что вам придется добавлять компоненты Rigidbodies на объекты, которые требуется соединить с помощью Fixed Joint.
Например, с помощью этого компонента можно реализовать “липкую гранату”. Для этого нужно написать скрипт, позволяющий определить столкновение с другим объектом, имеющим компонент Rigidbody (например врагом), после чего создать Fixed Joint, который присоединит гранату к этому Rigidbody, заставляя ее оставаться “прилипшей”, даже если враг будет двигаться.
Разрываемые соединения
Вы можете использовать свойства Break Force и Break Torque, чтобы установить лимиты силы по отношению к соединению. Если они меньше бесконечности, то Fixed Joint будет разрушен и соединение больше не будет поддаваться ограничениям.
Советы
- Для правильной работы компонента Fixed Joint не обязательно указывать свойство Connected Body.
- Для работы компонентов Fixed Joint требуется компонент Rigidbody.
Соединить кривой два объекта в Unity3D
Хочу поделиться небольшим фрагментом кода, который позволяет соединить два игровых объекта в трехмерном пространстве Unity3D без установки плагина. В моем случае это понадобилось для обозначения связи между двумя притягивающимися телами.
Если вдаваться в теорию, то в данном случае строится кривая Безье по трем опорным точкам по осям X и Y, а ось Z рассчитывается линейно. При необходимости можно довольно легко ввести четвертую и сделать изгиб более интересным. Очень рекомендую эту статью, всё предельно доступно.
Examples/curves.cs at main · Paupertony/Examples
Contribute to Paupertony/Examples development by creating an account on GitHub.
Как это быстро применить:
1) Потребуется некая (например, логическая) переменная. Когда нам надо показывать кривую, делаем ее true. В методе Update вызываем Curves, если эта переменная true.
2) У меня этот скрипт висит на подвижном объекте, поэтому мы указываем только второй объект
3) В примере нет удаления уже не нужной кривой, так как это зависит от ваших потребностей. Мне нужно, чтобы кривая удалялась, когда отпускают кнопку, так что на это событие и стоит удаление
4) В примере кривая строится из 10 отрезков. Это связано с тем, что игра делается под браузеры, и, соответственно, я экономлю на всём. Чтобы увеличить плавность, надо увеличить количество отрезков
Как итог: я не гарантирую, что это лучшее и идеально написанное решение, но если вам нужно, оно решит эту простую задачу. Всем хорошего дня 🙂
Как объединить сгенерированые объекты в Unity?

У меня есть рандомно генерированный лабиринт, который создается за счет построения 4 стен и 1 пола в каждой ячейке. В итоге, после генерации, в проекте у меня создаются огромное количество отдельных объектов(4 стены и пол), которые в итоге формируют нужный мне лабиринт.
Проблема такова: я хочу, что бы после генерации все эти объекты соединялись в один, что бы получался не лабиринт который сделан из множества частиц, а один цельный лабиринт, возможно ли это сделать?
- Вопрос задан более трёх лет назад
- 3849 просмотров