added gun models and enemy spawner

This commit is contained in:
2026-02-11 16:21:45 +00:00
parent 2d70da4827
commit 50968843e5
16 changed files with 1372 additions and 189 deletions

View File

@@ -0,0 +1,53 @@
using UnityEngine;
public class CameraShake : MonoBehaviour
{
public static CameraShake Instance { get; private set; }
private float shakeDuration = 0f;
private float shakeIntensity = 0f;
private float shakeFalloff = 1f;
private Vector3 originalLocalPos;
private bool shaking = false;
void Awake()
{
Instance = this;
originalLocalPos = transform.localPosition;
}
void LateUpdate()
{
if (!shaking) return;
if (shakeDuration > 0f)
{
Vector3 offset = Random.insideUnitSphere * shakeIntensity;
offset.z = 0f; // Keep shake on X/Y only
transform.localPosition = originalLocalPos + offset;
shakeDuration -= Time.deltaTime;
shakeIntensity = Mathf.Lerp(shakeIntensity, 0f, Time.deltaTime * shakeFalloff);
}
else
{
shaking = false;
shakeDuration = 0f;
transform.localPosition = originalLocalPos;
}
}
/// <summary>
/// Trigger a camera shake.
/// </summary>
/// <param name="duration">How long to shake (seconds)</param>
/// <param name="intensity">How far to displace the camera</param>
public void Shake(float duration, float intensity)
{
shakeDuration = duration;
shakeIntensity = intensity;
shakeFalloff = intensity / duration;
shaking = true;
}
}