using System.Collections; using UnityEngine; public class WeaponReload : MonoBehaviour { [Header("Munitionseinstellungen")] public int maxAmmo = 30; // Maximale Munition im Magazin public int currentAmmo; // Aktuelle Munition public float reloadTime = 1.5f; // Wie lange das Nachladen dauert (in Sekunden) private bool isReloading = false; // Verhindert Doppelklicks / Aktionen während des Nachladens void Start() { currentAmmo = maxAmmo; // Beim Start ist das Magazin voll } void Update() { if (PauseMenu.GameIsPaused) return; // Während nachgeladen wird, keine Aktionen zulassen if (isReloading) return; // --- PUNKT 1: Auslösen auf R ODER wenn Magazin leer ist --- // 1. Manuelles Nachladen mit R (nur wenn Magazin nicht schon voll ist) if (Input.GetKeyDown(KeyCode.R) && currentAmmo < maxAmmo) { StartCoroutine(Reload()); return; } } public bool UseAmmo() { if (PauseMenu.GameIsPaused || isReloading) return false; if (currentAmmo <= 0) { StartCoroutine(Reload()); return false; } currentAmmo--; Debug.Log("Schuss gefeuert! Verbleibende Munition: " + currentAmmo); return true; } // Coroutine für die Nachlade-Verzögerung IEnumerator Reload() { isReloading = true; Debug.Log("Nachladen gestartet..."); // Hier könntest du z.B. eine Nachlade-Animation oder einen Sound abspielen: // animator.SetTrigger("Reload"); // Warten, bis die Nachladezeit abgelaufen ist yield return new WaitForSeconds(reloadTime); // --- PUNKT 2: Munition wieder voll wenn fertig --- currentAmmo = maxAmmo; isReloading = false; Debug.Log("Nachladen abgeschlossen! Munition wieder voll: " + currentAmmo); } }