Oyun Kütüphanesi

Sağlık Sistemi (Health & Damage)

Etkileşim & Input Unity C# 2
SağlıkSistemiHealth&Damage .cs
C#
using UnityEngine;
using System;

public class HealthSystem : MonoBehaviour
{
    [Header("Sağlık")]
    public float maxHealth = 100f;
    public float currentHealth;

    public event Action<float> OnHealthChanged; // UI için
    public event Action OnDeath;

    void Start() => currentHealth = maxHealth;

    public void TakeDamage(float amount)
    {
        currentHealth = Mathf.Clamp(currentHealth - amount, 0, maxHealth);
        OnHealthChanged?.Invoke(currentHealth / maxHealth);
        if (currentHealth <= 0) OnDeath?.Invoke();
    }

    public void Heal(float amount)
    {
        currentHealth = Mathf.Clamp(currentHealth + amount, 0, maxHealth);
        OnHealthChanged?.Invoke(currentHealth / maxHealth);
    }
    public float GetPercent() => currentHealth / maxHealth;
}

// ---- KULLANIM ----
// health.OnHealthChanged += (pct) => healthBar.fillAmount = pct;
// health.OnDeath += () => Die();
// health.TakeDamage(25f);

Açıklama

Hasar alma, iyileşme, ölüm olayları ve UI bar'ına bağlanabilen tam kapsamlı sağlık sistemi.

Etiketler

Health Sağlık Hasar Can Ölüm Event

Nasıl Kullanılır?

1. Herhangi bir karaktere ekle.

2. UI Slider/Image için:

GetComponent<HealthSystem>().OnHealthChanged += (pct) => slider.value = pct;

3. OnDeath event'ine ölüm davranışı bağla.

4. Hasar için: health.TakeDamage(50f) çağır.

5. İyileşme için: health.Heal(30f) çağır.

Unity 2022+ ve Unity 6 ile uyumludur.

MonoBehaviour tabanlı scriptleri Assets klasörüne .cs olarak kaydedin.