using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraShake : MonoBehaviour{ float shakeAmount = 0; Vector3 startPos; public void Shake(float amt, float length){ shakeAmount = amt; startPos = transform.localPosition; InvokeRepeating("DoShake", 0, 0.01f); Invoke("StopShake", length); } void DoShake(){ if (shakeAmount > 0){ Vector3 camPos = transform.position; float offsetX = Random.value * shakeAmount * 2 - shakeAmount; float offsetY = Random.value * shakeAmount * 2 - shakeAmount; camPos.x += offsetX; camPos.y += offsetY; transform.position = camPos; } } void StopShake(){ CancelInvoke("DoShake"); transform.localPosition = startPos; } }