Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
7 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 158

Перемещение второго объекта к первому так, чтобы нижняя граница второго объекта была в центре цели

30.10.2021, 21:06. Показов 1124. Ответов 4

Студворк — интернет-сервис помощи студентам
Всем привет!
Уже сил нет,всю голову сломал как решить мою проблему.
У меня есть два 3d объекта с меш коллайдером. Мне нужно реализовать перемещение второго объекта к первому так,чтобы нижняя граница второго объекта была в центре цели.
!Цель это верхняя граница первого камня!
Пытался реализовать по другому. Сделал точки крепления для двух объектов и каждую такую точку вложил в эти два объекта, то есть у первого объекта есть два пустых объекта,которые отвечают за координаты низа объекта и его вершины. Со вторым объектом точно также. Потом написал корутину,которая устанавливала цель для второго объекта( !Цель это верхняя граница первого камня! ) и перемещала сам объект в эту цель,НО! Корутина заканчивалась,когда второй объект уже переместился в цель,то есть центр моего 3d объекта в конце корутины находился в целе,то есть второй объект входил в первый, а задача у меня стоит в том,чтобы эти два объекта никак друг в друга не входили.
Бился головой об стол над это проблемой пока не нашел,что можно найти грань меш коллайдера через bounds. Только как мне гарантированно получить верхнюю грань первого объекта и нижнюю грань второго,так чтобы нижняя грань второго объекта как бы двигала его и чтобы второй объект не заходил внутрь первого объекта после перемещения?
Заранее спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2021, 21:06
Ответы с готовыми решениями:

как сделать так чтобы допуск первого vlan ко второму не значил, второго к первому
Есть 2 условие: 1)Пользователи любой Vlan не должен иметь доступ к другим Vlan, кроме сервера. 2)Образовать...

Как из первого класса достучаться до объекта второго, а из второго до метода первого?
Есть два класса. Как можно из drawCircle достучаться до x,y,R, и из DrawNCirles дстучаться до drawCircle? class Data { public: int...

Реализовать дружественную функцию, нахождения максимального значения полей объекта первого типа и полей объекта второго
Задача Создать объект первого типа, у которого одно целочисленное свойство. Значение данного свойства определяется посредством...

4
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
30.10.2021, 21:25
А тема про камни случайно не ваша? Я просто пытаюсь понять задачу, которую вы решаете.
0
7 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 158
30.10.2021, 22:57  [ТС]
Да,эта задача моя. Решил не использовать решение Storm23 ,тк это код минимум мидла,а как максимум сеньора,а я стажер. За скопированный код меня по головке не погладят. Также некоторые моменты из его кода я переписал на свой лад,а вот само перемещение камня нет. Кроме того Storm23 реализовал весь процесс игры через один скрипт,а так неправильно делать,по моему мнению.
Весь день игрался с этими точками захвата вершины и дна и понял,что это мне никак не поможет. Тут нужно решать эту проблему через bound , а тут уже мои полномочия ,увы, все.

Добавлено через 6 минут
А и еще. Если я менял пустой дочерний объект с камнем(родительским объектом),то координаты просто складывались
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
30.10.2021, 23:58
Лучший ответ Сообщение было отмечено roma1808 как решение

Решение

Цитата Сообщение от roma1808 Посмотреть сообщение
Решил не использовать решение Storm23 ,тк это код минимум мидла,а как максимум сеньора,а я стажер. За скопированный код меня по головке не погладят.
Странная ситуация если честно. Получается что если кто-то на форуме может помочь кодом, то этот код должен быть "стажёрного качества", чтобы никто ничего не заподозрил ? Для меня загадка как должен выглядеть код стажера.

Цитата Сообщение от roma1808 Посмотреть сообщение
Кроме того Storm23 реализовал весь процесс игры через один скрипт,а так неправильно делать,по моему мнению.
Там ведь всего строк 20, если убрать комментарии)


Цитата Сообщение от roma1808 Посмотреть сообщение
то есть центр моего 3d объекта в конце корутины находился в цели, то есть второй объект входил в первый, а задача у меня стоит в том, чтобы эти два объекта никак друг в друга не входили.
Если вы хотите реализовать именно вашим способом, то ваш второй объект должен перемещаться не в позицию "верхушки" первого объекта, а в позицию "верхушки первого объекта + смещение (центр второго объекта минус его нижняя точка).

Либо каждую нижнюю точку у камня - сделайте родителем этого камня и перемещайте уже не камень, а эту точку-родителя. Тогда камень автоматически будет следовать за своим родителем и когда "нижняя точка-родитель второго камня" соприкоснётся к "верхней точкой первого камня" то визуально они будут выглядеть аккуратно стоящими друг над другом.
0
7 / 0 / 0
Регистрация: 18.05.2018
Сообщений: 158
31.10.2021, 08:08  [ТС]
Цитата Сообщение от samana Посмотреть сообщение
Странная ситуация если честно. Получается что если кто-то на форуме может помочь кодом, то этот код должен быть "стажёрного качества", чтобы никто ничего не заподозрил
Я скорее неправильно выразил свою мысль. Код из предыдущей темы шикарный. Видно,что писал профессионал.Но для моего уровня развития пока рано использовать асинхронное программирование. Для меня рациональнее решить проблему,а не начать изучать то,что мне нужно будет,когда буду мидлом. Я так глазком посмотрел,что это такое и ничего не понял. Зачем мне копировать код,который я сам не понимаю. Уж лучше написать код так,чтобы я его смог понимать.
Цитата Сообщение от samana Посмотреть сообщение
Либо каждую нижнюю точку у камня - сделайте родителем этого камня и перемещайте уже не камень, а эту точку-родителя. Тогда камень автоматически будет следовать за своим родителем и когда "нижняя точка-родитель второго камня" соприкоснётся к "верхней точкой первого камня" то визуально они будут выглядеть аккуратно стоящими друг над другом.
До создании этой темы я пробовал решить таким способом мою проблему,но камни все равно входили в друг друга. Решил перепробовать этот способ и все работает как надо. Скорее всего виновата моя невнимательность. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2021, 08:08
Помогаю со студенческими работами здесь

Дружественная функция находящая максимальное значение полей объекта первого типа и полей объекта второго типа
Само задание: Создать объект первого типа, у которого одно целочисленное свойство. Значение данного свойства определяется посредством...

Как сделать выпадающий список (DropDown) так, чтобы его граница была не утоплена, а обычная ?
Подскажите, как мне сделать выпадающий список (DropDown) так, чтобы его граница была не утоплена, а обычная ? С уважением, Сергей.

Пропорциональное вращение в зависимости от второго объекта
Здравствуйте, у меня две "линии" на шарнире. Изначально стоят вертикально. При подъеме верхней линии, вторая складывается под нее, как...

Один объект всегда поверх второго объекта
На первом скрине видно как трейл проходит над белым квадратом(button UI). Надо наоборот. Пробовал добавлять компонент sorting group и...

Массив: Вставить вектор в матрицу так, чтобы упорядоченность по первому столбцу не была нарушена.
Дана матрица размера n*m, все элементы которой различны, и вектор, состоящий из m элементов. Элементы первого столбца упорядочены по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru