| Управление автомобилем на Joint-ах | 
|  | 
| 
| GaZZoNEpta | Дата: Четверг, 14 Июня 2018, 10:41 | Сообщение # 1 |  |   был не раз Сейчас нет на сайте | Люди, всем привет. что мы имеем: колеса(4) прикреплены к осям Hinge Joint-ми;
 оси прикреплены к кузову Spring Joint-ми(по 2 штуки на каждом);
 между осями подобие кардана, в основном для жесткости конструкции. Прикреплен 2-мя Hinge Joint-ми к осям;
 Ездить ее уже научил, работа подвески устраивает, но допилить есть куда.
 Собственно проблема: не могу сделать корректный поворот передних колес.Когда едет еще более или менее, но когда стоит на одном месте, при повороте колес машинку начинает тянуть в какую-либо сторону, хотя силы к ней ни какие не прикладывал. Пока едешь все норм. В чем проблема понять не могу.
 Что бы повернуть колеса на Joint-ах нужно: сначала разрешить поворот по У, затем повернуть и снова заблокировать его.
 Код я написал сам, хоть и слаб в C#, потому и прошу помощи. Комментариев там наделал, думаю будет понятно.
 Тут кусок кода на поворот колес:
 
 Код {for (i = 0; i < 2; ++i)
 {
 WheelsHJ[i].axis = new Vector3(1, 1, 0); //разрешаем поворот по Y у HingJoint
 FrontWheels[i].localRotation = Quaternion.Euler(Vector3.up * angleRot * Input.GetAxis("Horizontal")); //поворачиваем до нужного градуса
 WheelsHJ[i].axis = new Vector3(1, 0, 0); //поле поворота запрещаем поворот по Y у HingJoint
 a = 1;
 }
 |  |  |  |  | 
| 
| drcrack | Дата: Четверг, 14 Июня 2018, 14:10 | Сообщение # 2 |  | старожил Сейчас нет на сайте | в PhysX есть встроенный WheelCollider, че за дичь ты придумал?   |  |  |  |  | 
| 
| GaZZoNEpta | Дата: Пятница, 15 Июня 2018, 11:02 | Сообщение # 3 |  |   был не раз Сейчас нет на сайте | Цитата drcrack (  )  drcrackвидишь в чем суть.. для игры в стиле оффроад он не подходит, ибо пол меша заезжает в объекты, а моим методом получается реализовать реальную работу подвески, если интерсно могу видео отправить, в чем суть сама)
 |  |  |  |  | 
| 
| vampir0305 | Дата: Пятница, 15 Июня 2018, 14:37 | Сообщение # 4 |  |   Unity C# Programmer Сейчас нет на сайте | И даже такую проблему смог решить? Добавлено (15 Июня 2018, 14:37)---------------------------------------------
 И кстати да, отправь видео. Интересно посмотреть)
 
 Красочная сюжетно-ориентированная игра-головоломка
 |  |  |  |  | 
| 
| GaZZoNEpta | Дата: Понедельник, 18 Июня 2018, 10:54 | Сообщение # 5 |  |   был не раз Сейчас нет на сайте | Цитата vampir0305 (  )  vampir0305на колеса пока не смотрите, это все лечится и то, что при поворот "оторваны колеса", это все лечится, сама суть в движении)
 
 
   
 
 Сообщение отредактировал GaZZoNEpta - Понедельник, 18 Июня 2018, 18:14 |  |  |  |  | 
| 
| orkons | Дата: Вторник, 19 Июня 2018, 03:51 | Сообщение # 6 |  | частый гость Сейчас нет на сайте | "Собственно проблема: не могу сделать корректный поворот передних колес.Когда едет еще более или менее, но когда стоит на одном месте, при повороте колес машинку начинает тянуть в какую-либо сторону, хотя силы к ней ни какие не прикладывал" Хотелось бы это увидеть на видео. Или я недоглядел?
 |  |  |  |  | 
| 
| GaZZoNEpta | Дата: Вторник, 19 Июня 2018, 05:31 | Сообщение # 7 |  |   был не раз Сейчас нет на сайте | Цитата orkons (  )  Или я недоглядел?нет, это я не показал основную проблему.
 
 Вот код, отвечающий за это(без поворота ригидбади - проблема не уходит):
 
 Код if (Input.GetButton("Horizontal"))
 {
 for (i = 0; i < 2; ++i)
 {
 WheelsHJ[i].axis = new Vector3(1, 1, 0); //разрешаем поворот по Y у HingJoint
 FrontWheels[i].localEulerAngles = Vector3.up * angleRot * Input.GetAxis("Horizontal"); //поворачиваем до нужного градуса
 Wheelsrb[i].transform.localEulerAngles = Vector3.up * angleRot * Input.GetAxis("Horizontal"); //поворачиваем до нужного градуса RigidBody
 WheelsHJ[i].axis = new Vector3(1, 0, 0); //поле поворота запрещаем поворот по Y у HingJoint
 a = 1;
 }
 }
 
 Сообщение отредактировал GaZZoNEpta - Вторник, 19 Июня 2018, 05:35 |  |  |  |  | 
| 
| drcrack | Дата: Вторник, 19 Июня 2018, 06:48 | Сообщение # 8 |  | старожил Сейчас нет на сайте | Вряд ли кто подскажет, это извращение то еще  
 Вообще я бы Bullet взял для такого, вроде в ассет сторе есть обертка для юнити
 Потому что PhysX даже падение кубика под действием гравитации точно смоделировать не может
  а ты хочешь машину с реалистичной подвеской |  |  |  |  | 
| 
| GaZZoNEpta | Дата: Вторник, 19 Июня 2018, 07:42 | Сообщение # 9 |  |   был не раз Сейчас нет на сайте | Цитата drcrack (  )  Вообще я бы Bullet взял для такогопо-подробнее, пожалуйста.
 
 
 Цитата drcrack (  )  падение кубикада, я это понимаю, но все же.. если долго мучиться, что-то да получится, я считаю
   |  |  |  |  |