TextMesh ist der richtige Weg, um das zu finden, wonach Sie suchen, da Sie diese Karten in einer Ebene anzeigen. Diese Komponente wäre bei nicht ebenen Oberflächen keine gültige Wahl.
Fügen Sie Ihrer Karte als Kind ein leeres Spielobjekt hinzu und fügen Sie dann TextMesh als Komponente hinzu -> Komponente / Netz / Textnetz hinzufügen. Gib den Text ein, den du brauchst, und danach musst du den Text an die gewünschte Stelle anpassen und die Position des gameObject verschieben. Beachten Sie, dass der Text deformiert wird, wenn die Vaterobjekte keine 1-1-1-Skala haben. In diesem Fall müssen Sie Ihre Objektorganisation ändern und den Text per Skript verschieben, anstatt ihn als untergeordnetes Objekt zu verwenden.
Wenn Sie die Karte drehen, werden Sie feststellen, dass sich der Text über jedem Netz in der Szene überlappt, sogar über Ihrer eigenen Karte. Um dies zu vermeiden, müssen Sie einen benutzerdefinierten Shader für das "TextMesh" verwenden, mit dem es wie jedes andere Objekt in der Szene gerendert wird.
Dies ist der Shader:
Shader "Text/TextNonOverlap Shader" {
Properties {
_MainTex ("Font Texture", 2D) = "white" {}
_Color ("Text Color", Color) = (1,1,1,1)
}
SubShader {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
Lighting Off Cull Off ZWrite Off Fog { Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
Pass {
Color [_Color]
SetTexture [_MainTex] {
combine primary, texture * primary
}
}
}
}
Um den Shader verwenden zu können, benötigen Sie eine Schriftart in Ihrem Projekt. Jeder wird arbeiten. Erstellen Sie ein Material und setzen Sie diesen Shader darauf. Wählen Sie dann die von Ihnen ausgewählte Schriftart aus und weisen Sie ihr im selben Feld "Schrifttextur" des Materials die "Schrifttextur" zu. Dies ist wichtig.
Ändern Sie dann im Spielobjekt mit dem TextMesh die Schriftart in die von Ihnen ausgewählte, genauso wie die, die Sie als Schrifttextur auf das Material gesetzt haben, oder es funktioniert nicht. Wählen Sie in der Komponente MeshRenderer "Materialien -> Element 0" und platzieren Sie das soeben erstellte Material darauf. Jetzt haben Sie einen Text, der sich nicht überlappt. Um die Farbe zu ändern, ändern Sie einfach die Farbe des Materials.
Es ist nicht kompliziert, aber es ist einfach, sich zu vernetzen. Seien Sie also vorsichtig.
PS: Ja, der Text kann außerhalb der Karte liegen, aber wie Sie sehen können, hat sogar Hearthstone einen ähnlichen Ansatz verwendet