| 
				
				[Rigidbody] Применение сил, и скрепление объектов
				 | 
 | 
| XpomIX | Дата: Пятница, 08 Мая 2020, 22:08 | Сообщение # 1 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 |   Мне нужно чтобы дети общего объекта при воздействии на них сил действовали на остальных, т.е. если a и b запиханных в один объект, будут свои Rigidbody а на них силы(указны стрелочками), то они друг от друга отлетят и не будут одним целым, я бы хотел их как то склеить все кубики. Как можно поступить?
 
 Сообщение отредактировал XpomIX - Пятница, 08 Мая 2020, 22:09  |  
| 
 | 
 |    | 
| puksus4 | Дата: Пятница, 08 Мая 2020, 22:50 | Сообщение # 2 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Ну я не знаю какая физика в юнити используется, но в своём проекте (юзаю Bullet physics) я похожую задачу решал Compound шейпами. Пихал в ОДНО Rigidbody группу из склеенных примитивов. Выглядит вот так. https://prnt.sc/sbzxv4
  Я б очень удивился если б в юнити так было бы нельзя.
 
 Сообщение отредактировал puksus4 - Пятница, 08 Мая 2020, 22:56  |  
| 
 | 
 |    | 
| XpomIX | Дата: Пятница, 08 Мая 2020, 23:04 | Сообщение # 3 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Цитата puksus4 (  )   Ну я не знаю какая физика в юнити используется, но в своём проекте (юзаю Bullet physics) я похожую задачу решал Compound шейпами. Пихал в ОДНО Rigidbody группу из склеенных примитивов. Выглядит вот так. https://prnt.sc/sbzxv4
  Я б очень удивился если б в юнити так было бы нельзя. 
  Я думал об этом, но чтобы это реализовать у меня, нужно будет применять силу с разных точек в разные стороны. Вероятно можно сделать проще.
 |  
| 
 | 
 |    | 
| shizofren | Дата: Суббота, 09 Мая 2020, 18:21 | Сообщение # 4 |  
 
Starting MS-DOS... 
Сейчас нет на сайте 
 
 | XpomIX, всегда можно управлять силами вручную. В rigidbody есть поле position. Если устанавливать velocity 0, можно задавать самому нужное направление движения. Силы вообще плохо подходят для своей логики, надо управлять позицией объекта вручную. То есть, в твоём случае, надо написать что-то вроде такого: Каждый объект-ребёнок имеет класс "кубик". Родитель имеет объект "родитель". Объект родитель имеет ивент "касание", который сигнализирует всем кубикам, что с одним кубиком произошло касание. Объект-ребенок сообщает объекту родителю, что его коснулись. Объект родитель передаёт всем детям нужное направление движения. Все дети получают направление движения и задают его в FixedUpdate: rigidbody.position += direction * Time.fixedDeltaTime То есть direction - то направление, которое получили все объекты-дети.
  Моя команда
 |  
| 
 | 
 |    | 
| XpomIX | Дата: Суббота, 09 Мая 2020, 19:16 | Сообщение # 5 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Цитата shizofren (  )   rigidbody.position  Спасибо, не знал, это конечно будет замудрённо, но большое спасибоДобавлено (10 Мая 2020, 22:51) ---------------------------------------------
  Цитата shizofren (  )   XpomIX, всегда можно управлять силами вручную. В rigidbody есть поле position. Если устанавливать velocity 0, можно задавать самому нужное направление движения. Силы вообще плохо подходят для своей логики, надо управлять позицией объекта вручную. То есть, в твоём случае, надо написать что-то вроде такого: Каждый объект-ребёнок имеет класс "кубик". Родитель имеет объект "родитель". Объект родитель имеет ивент "касание", который сигнализирует всем кубикам, что с одним кубиком произошло касание. Объект-ребенок сообщает объекту родителю, что его коснулись. Объект родитель передаёт всем детям нужное направление движения. Все дети получают направление движения и задают его в FixedUpdate: rigidbody.position += direction * Time.fixedDeltaTime То есть direction - то направление, которое получили все объекты-дети. 
  Таак, я немного не так понял, я думал что если rigidbody.position поставить на угол, тогда он будет например переворачиваться или что то такое, так можно сделать?
 |  
| 
 | 
 |    | 
| shizofren | Дата: Понедельник, 11 Мая 2020, 13:38 | Сообщение # 6 |  
 
Starting MS-DOS... 
Сейчас нет на сайте 
 
 | XpomIX, если хочешь, чтобы переворачивался, тогда надо менять ещё и Rigidbody-rotation. Конечно можно сделать. Я бы сделал так - залочил бы поворот всех объектов в настройке rb, менял бы их позицию вручную, а поворот сделал бы или обычной анимацией, или поворотом трансформа.
  Моя команда
 |  
| 
 | 
 |    |