vp_FPSCamera.DoBob C# (CSharp) Méthode

DoBob() private méthode

private DoBob ( float speed ) : void
speed float
Résultat void
    private void DoBob(float speed)
    {
        if (BobAmplitude == Vector4.zero || BobRate == Vector4.zero)
            return;

        speed = Mathf.Min(speed, BobMaxInputVelocity);

        // reduce number of decimals to avoid floating point imprecision bugs
        speed = Mathf.Round(speed * 1000.0f) / 1000.0f;

        float upAmp = (speed * (BobAmplitude.y * -0.0001f));
        float upBob = (Mathf.Cos(Time.time * (BobRate.y * 10.0f))) * upAmp;

        float sideAmp = (speed * (BobAmplitude.x * 0.0001f));
        float sideBob = (Mathf.Cos(Time.time * (BobRate.x * 10.0f))) * sideAmp;

        float forwAmp = (speed * (BobAmplitude.z * 0.0001f));
        float forwBob = (Mathf.Cos(Time.time * (BobRate.z * 10.0f))) * forwAmp;

        float rollAmp = (speed * (BobAmplitude.w * 0.0001f));
        float rollBob = (Mathf.Cos(Time.time * (BobRate.w * 10.0f))) * rollAmp;

        m_PositionSpring.AddForce(new Vector3(sideBob, upBob, forwBob));
        m_RotationSpring.AddForce(new Vector3(0, 0, rollBob));

        DetectBobStep(speed, upBob);
    }