Implementering av arv og polymorfisme i enhetskode

Implementering av arv og polymorfisme i kode lar deg lage mer spesialiserte klasser basert på eksisterende klasser, og behandle objekter av forskjellige klasser som objekter av en felles basisklasse. Dette fremmer gjenbruk av kode, fleksibilitet og utvidbarhet. Her er et eksempel på implementering av arv og polymorfisme i Unity:

Arv

Arv oppnås ved å opprette en ny klasse (underordnet eller avledet klasse) basert på en eksisterende klasse (overordnet eller basisklasse). Den underordnede klassen arver attributtene og metodene til den overordnede klassen og kan legge til sine egne unike attributter og metoder eller endre de eksisterende. Her er et eksempel:

// 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 dette eksemplet er klassen 'Shape' grunnklassen, og klassen 'Circle' er avledet fra den. Metoden 'Draw()' er definert i begge klassene, men klassen 'Circle' overstyrer metoden for å gi sin egen implementering. Dette lar deg spesialisere atferden til klassen 'Circle' mens du opprettholder den delte atferden definert i klassen 'Shape'.

Polymorfisme

Polymorfisme gjør at objekter av forskjellige klasser kan behandles som objekter av en felles basisklasse, noe som gir fleksibilitet og tillater kode som opererer på objekter generisk. Her er et eksempel:

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

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

I dette eksemplet aksepterer metoden 'DrawShapes()' en rekke objekter 'Shape'. Den itererer over matrisen og kaller metoden 'Draw()' på hvert objekt. Matrisen inneholder et objekt 'Circle' og et basisobjekt 'Shape'. Men siden klassen 'Circle' overstyrer metoden 'Draw()', påkalles den riktige implementeringen for hvert objekt basert på den faktiske typen ved kjøring. Dette demonstrerer polymorfisme i aksjon.

Konklusjon

Ved å utnytte arv og polymorfisme i Unity-koden, kan du lage spesialiserte klasser basert på eksisterende, definere delt atferd i basisklasser og skrive kode som opererer på objekter generisk, noe som gir fleksibilitet og fremmer gjenbruk av kode.

Foreslåtte artikler
Implementering av objektpooling i Unity
Implementering av VR-hodesettkontroll i Unity
Implementering av teleportering i Unity
Implementering av tastatur- og musinngang i Unity
Implementering av kinetiske interaksjoner i enhet
Opprette en trafikksimulator i Unity
Implementering av mål i Unity Games