MarisaMagicalStudy/Assets/Scripts/CameraShake.cs

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);
}
}
}