Jump to content
Unity Insider Forum

if(struct1 >= struc2) struct1 -= struct2


Singular

Recommended Posts

Hallo zusammen,

ich habe eine ganz kurze Frage. Leider habe ich nichts dazu im Internet gefunden.

Ist es möglich eigene vorgehensweisen für structs zu definieren? Für Mein Spiel habe ich für die Gebäude einen Upkeep Struct erstellt und für das Lager einen Lager Struct. Was ich nun definieren möchte sind die Operatoren '-' und '+' und '>=' und '<' bzw. '-=' und '+='.

Also in meinem Fall sieht das ganze ungefähr so aus:

if(Storrage >= Upkeep)
{
  Storrage -= Upkeep;
}

Ich könnte auch Methoden Definieren ich weiß, also "Storrage.Sub(Upkeep)" aber hübscher wäre es schon mit Minus und einer einfachen if Abfrage :D

 

Noch eine kurze andere Frage, ich würde mir gerne einen "Einsteigerkurs" für das Event-System von Unity anschauen. (möglichst auf Deutsch). Kennt jemand ein gutes Video dazu oder einen Blog denn man sich dazu mal anlesen kann? Vielleicht hat jemand auch selber was dazu erstellt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

 

Ich nutze das ehrlich gesagt wirklich nur sehr selten. Natürlich gibt es Fälle, wo ein Operator genau das ausdrückt, was man machen will. Aber mir scheint es sinnvoller, eine Methode mit einem aussagekräftigen Namen, zu wählen. Gefällt mir besser und es kann zu weniger Missverständnissen kommen.

 

Christoph

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb chrische5:

Hallo 

 

Das scheint nicht zu gehen.

https://www.informit.com/articles/article.aspx?p=101373&seqNum=15

 

Christoph 

Im text steht, dass es geht.

 

Zitat

    public struct MyStruct
    {
        public int Number;

        public static bool operator >(MyStruct a, MyStruct b)
        {
            return a.Number > b.Number;
        }

        public static bool operator <(MyStruct a, MyStruct b)
        {
            return a.Number < b.Number;
        }
    }

Wichtig ist, wenn man > overloaded muss auch < existieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...