using Cinemachine; using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScreenShakeCall : MonoBehaviour{ CinemachineVirtualCamera vCam; float shakeTimer; float shakeTimerTotal; float startingIntensity; public static ScreenShakeCall instance { get; private set; } void Awake(){ instance = this; vCam = GetComponent(); } public void ShakeCamera(float intensity, float time){ CinemachineBasicMultiChannelPerlin multiChannelPerlin = vCam.GetCinemachineComponent(); startingIntensity = intensity; shakeTimer = shakeTimerTotal = time; } void Update(){ if(shakeTimer > 0){ shakeTimer -= Time.deltaTime; CinemachineBasicMultiChannelPerlin multiChannelPerlin = vCam.GetCinemachineComponent(); multiChannelPerlin.m_AmplitudeGain = Mathf.Lerp(startingIntensity, 0f, 1 - (shakeTimer / shakeTimerTotal)); } } }