Beispiel #1
0
    private void SetYawVelocity()
    {
        Vector3 YawVelocity = new Vector3();
        float   tilt        = Vector3.Dot(_Car.ProjectedWorldVelocity, _Car.transform.right);

        if (_Car.ProjectedWorldVelocity.magnitude != 0)
        {
            YawVelocity = _Car.transform.up * _Car.CarManager.Inputs._SteerAxis * _Car.CarManager.YawTurnRate;
            //_Car.CarManager.ModelTransform.RotateAround(Vector3.Cross(_Car.transform.up, _Car.ProjectedWorldVelocity).normalized, _Car.CarManager.BankingRate * -0.0015f * _Car.LocalVelocity.z * (1f - Mathf.Abs(Vector3.Dot(_Car.transform.forward.normalized, _Car.ProjectedWorldVelocity.normalized) * 1.8f)) * Time.fixedDeltaTime);
            //_Car.CarManager.ModelTransform.RotateAround(Vector3.Cross(_Car.transform.up, _Car.ProjectedWorldVelocity).normalized, _Car.CarManager.BankingRate * -0.001f * _Car.LocalVelocity.z * Time.fixedDeltaTime);

            _Car.CarManager.ModelTransform.RotateAround(_Car.transform.forward, _Car.CarManager.BankingRate * 0.00075f * tilt * Time.fixedDeltaTime);
            _Car.CarManager.ModelTransform.RotateAround(-_Car.transform.forward, _Car.CarManager.Inputs._SteerAxis * _Car.CarManager.BankingRate * Time.fixedDeltaTime);
        }
        float tiltAngle = Vector3.SignedAngle(_Car.transform.up, _Car.CarManager.ModelTransform.up, _Car.transform.forward);

        _Car.CarManager.ParticleHandler.SetTilt(tiltAngle);

        if (_Car.CarManager.ParticleHandler.IsSparking)
        {
            _Car.CarManager.SetModelPosition(_Car.transform.position + Random.insideUnitSphere * 0.03f);
        }
        else
        {
            _Car.CarManager.SetModelPosition(_Car.transform.position);
        }

        _Car.SetAngularVelocity(YawVelocity);
    }
Beispiel #2
0
    private void SetYawVelocity()
    {
        Vector3 YawVelocity = new Vector3();

        if (_Car.ProjectedWorldVelocity.magnitude != 0)
        {
            YawVelocity = _Car.transform.up * _Car.CarManager.Inputs._SteerAxis * _Car.CarManager.YawTurnRate;
            _Car.CarManager.ModelTransform.RotateAround(-_Car.transform.forward, _Car.CarManager.Inputs._SteerAxis * _Car.CarManager.BankingRate * Time.fixedDeltaTime);
        }
        _Car.SetAngularVelocity(YawVelocity);
    }