Unity Camera Shake
public class CameraShake : MonoBehaviour
{
private void Start()
{
StartCoroutine(Shake(10, 4));
}
public IEnumerator Shake(float duration, float magnitude)
{
Vector3 originalPosition = transform.position;
//how much time elapsed sinse the first shake
float elapsed = 0.0f;
while (elapsed < duration)
{
float x = Random.Range(-1, 1) * magnitude;
float y = Random.Range(-1, 1) * magnitude;
float z = Random.Range(-1, 1) * magnitude;
transform.localPosition = new Vector3(x,originalPosition.y,z );
elapsed += Time.deltaTime;
yield return null;
}
transform.localPosition = originalPosition;
}
}