Jump to content
Unity Insider Forum
Jomnitech

[Gelöst]Methode in untergeordneter Klasse verwenden

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

 

Share this post


Link to post
Share on other sites

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🤗

Share this post


Link to post
Share on other sites

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.

  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...