Design des Red Dot-Systems im Spiel

Design des Red Dot-Systems im Spiel

Die ursprüngliche Absicht des red dot-Systemdesigns besteht darin, Benutzer daran zu erinnern. Durch die vom Red Dot-System konstruierten Red Dot-Pfade werden die Spieler von der äußersten Schicht zur innersten Schicht geführt.

Zu den gängigen Anwendungsszenarien gehören: Aufforderung an Spieler, neue E-Mails zu erhalten, neue Erfolge zu erzielen, eine bestimmte Aufgabe abzuschließen, ein Upgrade durchzuführen usw. Normalerweise sind die durch das Red-Dot-System konstruierten Pfade kontinuierlich.

Arten von roten Punkten

gemeinsamer roter Punkt
Rote Punkte lassen sich grob in Leistung und Logik unterteilen.

Was die Leistung angeht

Der rote Punkt kann ein einfacher roter Punkt oder ein Ausrufezeichen, Text, Animationseffekte usw. sein, die nicht wie ein roter Punkt aussehen. Kurz gesagt, es ist eine Erinnerung an den Benutzer.

Die Planung kann auf der Priorität der Aufforderung (schließlich bedeutet jede Betonung keine Betonung), dem Spaß und der Funktionalität basieren, um die Leistung dieses „roten Punktes“ zu arrangieren.

Die Leistungsverarbeitung kann einzeln gekapselt werden oder direkt eine benutzerdefinierte Red Dot-Leistung auf der entsprechenden Schnittstelle hinzufügen und dann die Schnittstellenleistung durch Rückruf oder Ereignis ändern, nachdem sich die Makrodaten geändert haben.

logisch gesehen

Die beiden grundlegendsten Zustände des roten Punktes sind Einblenden und Ausblenden.
Darüber hinaus gibt es weitere Informationsanzeigen wie die Anzahl der roten Punkte etc.

Code

Nach der Analyse wurde tatsächlich festgestellt, dass die Red-Dot-Struktur eine Baumstruktur oder ein Präfixbaum ist. Der Code kann auf den untenstehenden Link verwiesen werden.

Baumanwendung (1) - Red Dot-System basierend auf TrieTree (Präfixbaum)
【Spielentwicklungspraxis】 Bringen Sie Ihnen bei, wie Sie Lua in Unity verwenden, um das Red Dot-System zu implementieren

Da die Operation des Präfixbaums außerdem die Zeichenfolge aufteilt, führt dies zu Leistungsproblemen. Um das Problem des Saitenschneidens zu lösen, kann der Einsatz von Saiten optimiert werden. Der folgende Artikel verwendet RangeString (die Kapselung einer Zeichenfolge, die bequemer als Schlüssel im Präfixbaumfeld verwendet werden kann).

Red-Dot-System basierend auf Präfixbaum

Wenn der Blattknoten der Präfixbaumart Daten ändert, muss außerdem der Wert des übergeordneten Knotens aktualisiert werden. Da eine große Anzahl von Aktualisierungen untergeordneter Knoten zu einer ungültigen Aktualisierung des übergeordneten Knotens führt, gibt es die folgenden zwei Strategien.

  1. Fügen Sie einen Speicher-Dirty-Node-Pool hinzu. Wenn sich die Daten des untergeordneten Knotens ändern, fügen Sie den übergeordneten Knoten in den Dirty-Pool ein. Dann löst das externe Update die Aktualisierung aus und durchläuft den Dirty-Node-Pool, damit dieser seinen eigenen Wert abfragen kann.
  2. Fügen Sie jedem Knoten eine schmutzige Markierung hinzu. Wenn sich die Daten des untergeordneten Knotens ändern, markieren Sie alle Knoten entlang des Pfads des übergeordneten Knotens als fehlerhaft. Nachdem der Aktualisierungsvorgang ausgelöst wurde, fragt der Root-Knoten die als fehlerhaft markierten Knoten von oben nach unten ab und aktualisiert sie.

Bei der ersten Strategie kann die Durchführung des Aktualisierungsvorgangs einige Frames dauern. Es entstehen keine Leistungseinbußen und die Verarbeitung ist in verschiedenen Frames reibungsloser. Es ist etwas weniger zeitgemäß, hat aber auch keinen großen Einfluss auf das normale Gameplay.
Die zweite Strategie kann durch Upate oder manuell ausgelöst werden. Wenn Sie eine zeitnahere Berechnung benötigen, können Sie diese verwenden.

Ich denke du magst

Origin blog.csdn.net/qq_36433883/article/details/126503511
Empfohlen
Rangfolge