Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Cinemachine;
- public class CameraShake : MonoBehaviour
- {
- public static CameraShake Instance { get; private set; }
- CinemachineVirtualCamera cinemachineVirtualCamera;
- float shakerTimer;
- float shakerTimerTotal;
- float startingIntensity;
- void Awake()
- {
- Instance = this;
- cinemachineVirtualCamera = GetComponent<CinemachineVirtualCamera>();
- }
- public void ShakeCamera(float intensity, float time)
- {
- CinemachineBasicMultiChannelPerlin cinemachineBasicMultiChannelPerlin = cinemachineVirtualCamera.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
- cinemachineBasicMultiChannelPerlin.m_AmplitudeGain = intensity;
- startingIntensity = intensity;
- shakerTimerTotal = time;
- shakerTimer = time;
- }
- private void Update()
- {
- if (shakerTimer > 0)
- {
- shakerTimer -= Time.deltaTime;
- CinemachineBasicMultiChannelPerlin cinemachineBasicMultiChannelPerlin = cinemachineVirtualCamera.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
- cinemachineBasicMultiChannelPerlin.m_AmplitudeGain = Mathf.Lerp(startingIntensity, 0f, 1f - shakerTimer / shakerTimerTotal);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement