Страница 1 из 1

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

СообщениеДобавлено: 10 сен 2017, 08:49
GSerge
Здравствуйте! Делаю аркадную физику автомобиля. Есть проблема с колесами - автомобиль на них "дрожит". Как это исправить?
видео - 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);
        }
    }

 

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

СообщениеДобавлено: 18 июн 2018, 16:58
GaZZoN
попробуйте использовать FixedUpdate() и если на кузове нет коллайдеров, повешайте