sea-battle/Assets/Scripts/CameraShake.cs
2026-01-09 08:45:22 +03:00

33 lines
827 B
C#

using System.Collections;
using UnityEngine;
public class CameraShake : MonoBehaviour
{
private Vector3 originalPosition;
public void Shake(float duration, float magnitude)
{
StopAllCoroutines();
originalPosition = transform.localPosition;
StartCoroutine(ShakeCoroutine(duration, magnitude));
}
private IEnumerator ShakeCoroutine(float duration, float magnitude)
{
float elapsed = 0f;
while (elapsed < duration)
{
float x = Random.Range(-1f, 1f) * magnitude;
float y = Random.Range(-1f, 1f) * magnitude;
transform.localPosition = originalPosition + new Vector3(x, y, 0);
elapsed += Time.deltaTime;
yield return null;
}
transform.localPosition = originalPosition;
}
}