Uni.camera | Shake

originalPos = transform.localPosition; originalRot = transform.localRotation;

IEnumerator DoShake()

private Vector3 originalPos; private Quaternion originalRot; private float shakeDuration = 0f; private float shakeMagnitude = 0.1f; uni.camera shake

float elapsed = 0f; while (elapsed < shakeDuration) Vector3 randomOffset = Random.insideUnitSphere * shakeMagnitude; transform.localPosition = originalPos + randomOffset; originalPos = transform

Vector3 randomRot = Random.insideUnitSphere * shakeMagnitude; transform.localRotation = originalRot * Quaternion.Euler(randomRot); originalPos = transform.localPosition

elapsed += Time.deltaTime; yield return null; transform.localPosition = originalPos; transform.localRotation = originalRot;

shakeDuration = duration; shakeMagnitude = magnitude; StartCoroutine(DoShake());