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