Дрожание физики автомобиля

Физика в Unity

Дрожание физики автомобиля

Сообщение GSerge 10 сен 2017, 08:49

Здравствуйте! Делаю аркадную физику автомобиля. Есть проблема с колесами - автомобиль на них "дрожит". Как это исправить?
видео - https://www.youtube.com/watch?v=a4uVnby9zUM
P.S. WheelCollider - не подходит, потому что он работает только при движении физики. У меня же машина будет "стоять на месте", а дорога двигаться. Дорога не плоская, поэтому автомобиль должен реагировать на неровности дороги.

На колесах:
Синтаксис:
Используется csharp

void Update()
    {
        if (Physics.Raycast(transform.position + transform.up * upLimit, -transform.up, out hit, maxDistanse, layer))
        {
            hitDistanse = hit.distance;
        }
        else
        {
            hitDistanse = maxDistanse;
        }

//spring
        lastForceSpring = forceSpring;
        forceSpring = (hitDistanse - maxDistanse) * -spring * Time.deltaTime;
//dump
        shiftSpeed = lastDistanceForDumpSpeed - hitDistanse;
        lastDistanceForDumpSpeed = hitDistanse;
        forceDump = shiftSpeed * damper * Time.deltaTime;

        force = (forceSpring + forceDump) * 400;
    }

public Vector3 GetForce()
    {
        return force * transform.up;
    }

 



На машине:
Синтаксис:
Используется csharp

void FixedUpdate()
    {
        for (int i = 0; i < wheel.Length; i++)
        {
            rb.AddForceAtPosition(wheel[i].GetForce(), wheel[i].transform.position);
        }
    }

 
GSerge
UNец
 
Сообщения: 5
Зарегистрирован: 10 сен 2017, 07:56

Re: Дрожание физики автомобиля

Сообщение GaZZoN 18 июн 2018, 16:58

попробуйте использовать FixedUpdate() и если на кузове нет коллайдеров, повешайте
GaZZoN
UNец
 
Сообщения: 2
Зарегистрирован: 10 май 2018, 13:57


Вернуться в PhysX

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

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