2017-12-07 2 views
1

Wir versuchen Emojis unser Spiel mit Emoji One und Unity mit TextMeshPro hinzuzufügen. Wir haben ein Fenster geöffnet, das alle Emojis zeigt und dann kann der Benutzer den auswählen, den sie wollen, wir haben Probleme mit dem Löschen von ihnen und dem Schreiben von Text nach ihnen.Hinzufügen von Emojis richtig zu einem Spiel

Hier ist der Code, den wir haben müssen, wird der Name des Sprites ist dies: diese 1f609 jedoch der Ausgang, wenn wir den Code und fügen Sie ihn in das Eingabefeld laufen: \ud83d\ude09

string name = _image.sprite.name; 
int hexNumber = int.Parse(name, System.Globalization.NumberStyles.HexNumber); 
string c = char.ConvertFromUtf32(hexNumber); 
_inputField.text += c; 

Die erwartete Das Ergebnis ist, dass wir nur ein einziges Unicode-Zeichen sehen sollten, damit wir Emojis mit der Rücktaste löschen können zwei Emoji-Spots, wenn wir Text eingeben, bricht es.

Gerade jetzt, wenn wir Text löschen, wird es uns mit leeren Platz verlassen und wenn wir Text durch Eingabe in das Feld hinzufügen, wird es die Zeichen in zwei teilen sie zu brechen.

Antwort

1

Unicode in C# world bedeutet UTF-16, also gibt es diese "Ersatzpaare", mit denen Sie jetzt zu tun haben. Eine Lösung wäre, zu erkennen, ob Sie gerade die Hälfte eines Ersatzpaares entfernt haben und in diesem Fall auch die andere Hälfte entfernen. Die erste Hälfte eines Ersatzpaars befindet sich immer im Bereich [D800h, DBFFh] und die zweite Hälfte befindet sich immer im Bereich [DC00h, DFFFh]. Wenn Sie also einen char in einem dieser Bereiche entfernen, sollten Sie ein weiteres Zeichen entfernen und Sie wissen auch, wo dieser Char ist (vor oder nach dem gerade entfernten).

+0

Danke, wir werden sehen, ob das hilft. – Baraphor

Verwandte Themen