41 lines
999 B
C#
41 lines
999 B
C#
using Cinemachine;
|
|
using UnityEngine;
|
|
|
|
public class CameraShake : MonoBehaviour
|
|
{
|
|
[SerializeField]private CinemachineFreeLook v_Camera;
|
|
private float shakeTimer;
|
|
|
|
public static CameraShake Instance;
|
|
|
|
private void Start()
|
|
{
|
|
if (Instance != this)
|
|
Destroy(Instance);
|
|
Instance = this;
|
|
}
|
|
|
|
public void ShakeCamera(float intensity, float time)
|
|
{
|
|
CinemachineBasicMultiChannelPerlin multiChannelPerlin = v_Camera.GetComponent<CinemachineBasicMultiChannelPerlin>();
|
|
|
|
multiChannelPerlin.m_AmplitudeGain = intensity;
|
|
shakeTimer = time;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (shakeTimer > 0)
|
|
{
|
|
shakeTimer -= Time.deltaTime;
|
|
if (shakeTimer <= 0f)
|
|
{
|
|
CinemachineBasicMultiChannelPerlin multiChannelPerlin = v_Camera.GetComponent<CinemachineBasicMultiChannelPerlin>();
|
|
|
|
multiChannelPerlin.m_AmplitudeGain = 0f;
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|