Jump to content
Unity Insider Forum

[Gelöst]Methode in untergeordneter Klasse verwenden


Jomnitech

Recommended Posts

Hallo zusammen

Ich habe zwei Skripts, einmal mit einem MonoBehaviour und ein Skript welches dann als class darauf aufbaut, so weit so gut. Im MonoBehaviour habe ich eine Methode, welche ich nun aber im zweiten Skript erweitern möchte, wie mache ich das? Mit den Variablen geht das ja problemlos, auch wenn man sie nicht direkt sieht, aber bei der Methode bin ich jetzt überfragt.
Sieht wie Folgt aus:
 

public class CharacterStats : MonoBehaviour {

    [Header("Health")]
    public float maxHealth = 100f;
    public float currentHealth;
    [Header("For All Stats")]
    public Stat rangeDamage;
    public Stat meleeDamage;
    [Header("0-100%")]
    public Stat armor;

    [HideInInspector]
    public float _amount;

    private void Start()
    {
        //mb = GetComponent<Destructible>();
    }
    private void Awake()
    {
        currentHealth = maxHealth;
        
    }

    public void TakeDamage (float amount)
    {
        amount -= Mathf.Round( amount/100*armor.GetValue()); // prozentsatz 0-100% rüstung

        currentHealth -= amount;
        if(currentHealth <= 0)
        {
            Die();
        }      

    }

    public virtual void Die()
    {
        //Die in some way
        // use  public override void Die()
    }

}
public class PlayerBodyStat : CharacterStats
{

    public override void Die()
    {
        base.Die();

    }

	//<< Hier möchte ich die Methode TakeDamage erweitern. 
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi @Sascha, danke für dein Antwort

vor 2 Stunden schrieb Sascha:

Genau, wie du es bei "Die" gemacht hast. virtual in der Superklasse, override in der erbenden Klasse.

Achso🙃, merci.

vor 2 Stunden schrieb Sascha:

Ich möchte dir aber gerne das hier ans Herz legen:

Ich war der Meinung man soll genau das nicht machen, also jedes Skript als MonoBehaviour anzulegen, oder war das mal, oder bin ich hier einfach falsch informiert?

Wie dem auch sei, hab das jetzt mehrmals gelesen, ich denke das Grundkonzept habe ich verstanden. Allerdings mühe ich mich noch mit der genauen Zuweisung und deklaration und integration ab..., aber man lern ja mit der Herausvorderung🤗

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Nachteile von Vererbung in Unity sind im Artikel ja beschrieben. Ist jetzt nicht so, dass das ganz böse wäre, wenn du Vererbung benutzt. Aber meiner Erfahrung nach sind Komponenten eben doch in gewissen Fällen ein Stück besser - insbesondere in Unity, das mit Komponenten super umgehen kann, mit Vererbung aber nicht immer optimal. Nachteile zur Komponenten-Variante sind mir eigentlich keine bewusst - außer, dass man Sachen wie Beobachtermuster verstanden haben muss, um damit richtig arbeiten zu können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...