Implementering av arv och polymorfism i enhetskod

Genom att implementera arv och polymorfism i kod kan du skapa mer specialiserade klasser baserade på befintliga klasser, och behandla objekt av olika klasser som objekt av en gemensam basklass. Detta främjar kodåteranvändning, flexibilitet och utökningsbarhet. Här är ett exempel på implementering av arv och polymorfism i Unity:

Arv

Arv uppnås genom att skapa en ny klass (underordnad eller härledd klass) baserat på en befintlig klass (förälder eller basklass). Den underordnade klassen ärver den överordnade klassens attribut och metoder och kan lägga till sina egna unika attribut och metoder eller modifiera de befintliga. Här är ett exempel:

// Base class
public class Shape
{
    public virtual void Draw()
    {
        Debug.Log("Drawing a shape...");
    }
}

// Derived class
public class Circle : Shape
{
    public override void Draw()
    {
        Debug.Log("Drawing a circle...");
    }
}

I det här exemplet är klassen 'Shape' basklassen, och klassen 'Circle' härleds från den. Metoden 'Draw()' är definierad i båda klasserna, men klassen 'Circle' åsidosätter metoden för att tillhandahålla sin egen implementering. Detta gör att du kan specialisera beteendet för klassen 'Circle' samtidigt som du bibehåller det delade beteendet som definieras i klassen 'Shape'.

Polymorfism

Polymorfism tillåter att objekt av olika klasser behandlas som objekt av en gemensam basklass, vilket ger flexibilitet och tillåter kod som fungerar på objekt generiskt. Här är ett exempel:

void DrawShapes(Shape[] shapes)
{
    foreach (Shape shape in shapes)
    {
        shape.Draw();
    }
}

// Usage
Shape[] shapes = new Shape[] { new Circle(), new Shape() };
DrawShapes(shapes);

I det här exemplet accepterar metoden 'DrawShapes()' en array av objekt 'Shape'. Den itererar över arrayen och anropar metoden 'Draw()' på varje objekt. Arrayen innehåller ett objekt 'Circle' och ett basobjekt 'Shape'. Men eftersom klassen 'Circle' åsidosätter metoden 'Draw()', anropas lämplig implementering för varje objekt baserat på dess faktisk typ vid körning. Detta visar polymorfism i aktion.

Slutsats

Genom att utnyttja arv och polymorfism i din Unity-kod kan du skapa specialiserade klasser baserade på befintliga, definiera delade beteenden i basklasser och skriva kod som fungerar på objekt generellt, ger flexibilitet och främjar återanvändning av kod.

Föreslagna artiklar
Implementering av tangentbords- och musingång i Unity
Implementering av VR Headset Control i Unity
Implementering av teleportering i Unity
Implementering av kinetiska interaktioner i enhet
Öppna lådor och skåp med specifika nycklar i Unity
Plocka och släpp-system utan lager i Unity
Skapa en trafiksimulator i Unity