Игрок двигает объекты с ригидбоди

Физика в Unity

Игрок двигает объекты с ригидбоди

Сообщение lol 19 янв 2011, 21:47

Может я что-то пропустил в хелпах и уроках, но меня смущает вот какая вещь.
Мой игрок двигается с помощью соответствующей функции Move() класса CharacterController. На OnControllerColliderHit идёт обработка как в хелпе:
Синтаксис:
Используется csharp
        void OnControllerColliderHit(ControllerColliderHit hit)
        {
                if (m_pCharacter.IsOnRagdoll())
                        return;
               
                Rigidbody pBody = hit.collider.attachedRigidbody;
                // no rigidbody
                if (pBody == null || pBody.isKinematic)
                        return;
               
                // We dont want to push objects below us
                if (hit.moveDirection.y < -0.3)
                        return;
               
                // Calculate push direction from move direction,
                // we only push objects to the sides never up and down
                Vector3 vecPushDir = new Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z);

                // If you know how fast your character is trying to move,
                // then you can also multiply the push velocity by that.
   
                // Apply the push
                pBody.velocity = vecPushDir * 2.0f;

                return;
        }
 


Вот только меня смущает, что какого бы размера(и массы) не был бы объект на пути игрока, отодвигается он абсолютно с одинаковой скоростью. Т.е. маленькая коробка и огромная - обе одинаково отодвигаются. Это потому что в этом коде просто объекту подставляется скорость(pBody.velocity = )? А на самом деле надо делать AddForce, чтобы учитывался размер и вес объекта, и чтобы мы не могли двигать все ригидбоди с одинаковой скоростью?
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва

Re: Игрок двигает объекты с ригидбоди

Сообщение lol 19 янв 2011, 21:57

Сделал через AddForce, вроде бы маленькие ящики пинаются, а Большой куб нет. Так это правильно решение?
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва

Re: Игрок двигает объекты с ригидбоди

Сообщение Zaicheg 19 янв 2011, 22:57

А можно (не значит, что лучше) как и раньше velocity, просто с учётом rigidbody.mass
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Игрок двигает объекты с ригидбоди

Сообщение alexz 20 янв 2011, 10:50

lol писал(а):Сделал через AddForce, вроде бы маленькие ящики пинаются, а Большой куб нет. Так это правильно решение?

А большой куб должен пинаться? У него, скорее всего, просто масса большая, и сила трения превышает силу, с которой его толкают.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: Игрок двигает объекты с ригидбоди

Сообщение lol 20 янв 2011, 21:50

alexz писал(а):А большой куб должен пинаться?


Да не, фраза: "Так это правильно решение?" было про использование AddForce вместо velocity:)

Zaicheg писал(а):А можно (не значит, что лучше) как и раньше velocity, просто с учётом rigidbody.mass


А чем velocity лучше? Быстрее работает или что?
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва

Re: Игрок двигает объекты с ригидбоди

Сообщение Zaicheg 20 янв 2011, 22:19

lol писал(а):А чем velocity лучше? Быстрее работает или что?

Я не писал, что лучше.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Игрок двигает объекты с ригидбоди

Сообщение lol 20 янв 2011, 22:45

Zaicheg писал(а):А можно (не значит, что лучше)


Мне показалось, что эта фраза это подразумевала:)
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва

Re: Игрок двигает объекты с ригидбоди

Сообщение lol 22 янв 2011, 19:14

И ещё хотел спросить, делаете ли вы общий вес ригидбоди регдолла равным примерно весу человека: 60-70кг ?
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва


Вернуться в PhysX

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3