Um das Miniboard mit Indikatoren zu kennzeichnen, die anzeigen, welche Kacheln auf deinem Brett angegriffen wurden, musst du die Koordinaten einer Brettkachel in einen Welt-Standort auf dem Miniboard konvertieren.
Kachelkoordinaten in Welt-Transform auf dem Miniboard konvertieren
Das Verfahren zum Konvertieren einer Kachelkoordinate in einen Welt-Standort auf dem Miniboard ist:
Ermittle den Skalierungsfaktor des Miniboards.
Konvertiere die Kachelkoordinate in
vector3, indem du den Skalierungsfaktor verwendest.Drehe die Markierung so, dass sie mit der Drehung des Miniboards übereinstimmt.
Gibt das konstruierte „transform“ zurück.
Erstelle eine Funktion namens GetDimensions , um die Abmessungen des Spielbretts zu erhalten:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }
using { DataTypes }
using { UtilityFunctions }
board<public> := class(creative_device):
Als Nächstes benötigst du ein Verfahren, um eine Kachelkoordinate in ein Transform auf dem Miniboard zu konvertieren:
Sicherstellen, dass ein gültiges Miniboard vorhanden ist.
Die Abmessungen des Spielbretts ermitteln.
Den relativen Maßstab einer Kachel im Miniboard-Raum aus den Abmessungen des Miniboards und den Abmessungen des größeren Spielbretts ermitteln.
Das Kamera-Transform abrufen.
Die Drehung definieren, die erforderlich ist, um die Achse des Miniboard-Mesh vorwärts zu drehen.
Den gedrehten Versatz-Welt-Standort in Bezug auf das Zentrum des Miniboards konstruieren.
Das Miniboard-Transform abrufen.
Den Miniboard-Versatz vom Zentrum zur Position des Miniboards hinzufügen, um das Miniboard-Transform für die Kachelkoordinaten zu erhalten.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
miniboard<public> := class(creative_device):
...
Eine Miniboard-Markierung setzen
Um eine Miniboard-Markierung auf dem Miniboard zu platzieren, musst du Folgendes wissen:
Die Brettkachel-Koordinate, wo die Markierung positioniert wird.
Ob es eine Treffer- oder eine Fehlschlag-Markierung sein soll.
Erstelle eine neue Enum, um den Markierungstyp im Modul DataTypes darzustellen:
using{/Verse.org/Simulation}
using{/Verse.org/Random}
using{/UnrealEngine.com/Temporary/SpatialMath}
DataTypes<public> := module:
...
marker_type<public> := enum<open>:
Hit
Definiere eine Funktion SetMarker , um eine Markierung auf dem Miniboard in der Miniboard-Klasse zu platzieren.
Diese Funktion führt die folgenden Schritte aus:
Sicherstellen, dass ein gültiges Miniboard vorhanden ist.
Bestimmen, welche Art von Markierungs-Mesh verwendet werden soll: Treffer oder Fehlschlag.
Das Miniboard-Transform der Input-Kachelkoordinaten abrufen.
Die Markierung spawnen.
Die Markierung zum Markierungs-Array hinzufügen.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
miniboard<public> := class(creative_device):
...
Überblick
Auf dieser Seite haben wir dich durch die folgenden Schritte geführt:
Eine Markierung auf dem Miniboard platzieren.
Zwischen Miniboard-Raum, Brettraum und Welt-Bereich konvertieren.
Dateien
using { /Verse.org/Simulation }
using { /Verse.org/Random }
DataTypes<public> := module:
tile_coordinate<public> := class<concrete>:
Left<public>:int = 0
Forward<public>:int = 0
bounds<public> := class<concrete>:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }
using { DataTypes }
using { UtilityFunctions }
board<public> := class(creative_device):
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse for how to create a verse device.
# A Verse-authored creative device that can be placed in a level