24 lines
647 B
C#
24 lines
647 B
C#
using Unity.Cinemachine;
|
|
using UnityEngine;
|
|
|
|
public class CameraShake : MonoBehaviour
|
|
{
|
|
[SerializeField] private CinemachineImpulseSource impulseSource;
|
|
[SerializeField] private float cameraShakeForce;
|
|
private float currentDuration;
|
|
|
|
public void ShakeCamera(float duration)
|
|
{
|
|
currentDuration = duration;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (currentDuration > 0)
|
|
{
|
|
currentDuration -= Time.deltaTime;
|
|
impulseSource.DefaultVelocity = new Vector3(Random.Range(-1f, 1f), Random.Range(-1f, 1f), 0f);
|
|
impulseSource.GenerateImpulse(cameraShakeForce);
|
|
}
|
|
}
|
|
}
|