예제 #1
0
    private void MovementEffects()
    {
        float deltaX = (transform.position.x - PrevX);

        if (Mathf.Abs(deltaX) > 0.0001f)
        {
            float slope = terrain.GetSlopeAtX(transform.position.x);
            slope = (slope + 1) * 0.5f;
            float spinSpeed = Mathf.Lerp(MinWheelSpin, MaxWheelSpin, slope);

            foreach (TankWheel wheel in MyWheels)
            {
                wheel.Spin(spinSpeed);
            }

            if (MovementAudio.volume < MovementVolume)
            {
                MovementAudio.volume += Time.deltaTime;
            }

            if (MyTurn)
            {
                cameraEffects.SetTankMoving(true);
            }
        }
        else
        {
            if (MovementAudio.volume > 0f)
            {
                MovementAudio.volume -= Time.deltaTime;
            }
            if (MyTurn)
            {
                cameraEffects.SetTankMoving(false);
            }
        }

        float deltaRot = (TurretPivot.rotation.z - PrevTurretRot);

        if (Mathf.Abs(deltaRot) > 0.0001f)
        {
            if (TurretAudio.volume < TurretVolume)
            {
                TurretAudio.volume += Time.deltaTime;
            }
        }
        else
        {
            if (TurretAudio.volume > 0f)
            {
                TurretAudio.volume -= Time.deltaTime;
            }
        }

        PrevX         = transform.position.x;
        PrevTurretRot = TurretPivot.rotation.z;
    }