Qu/Assets/Scripts/CameraShake.cs
Gerard Gascón bd5b1556ff init
2025-04-24 14:23:29 +02:00

34 lines
865 B
C#

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