Per contrassegnare il minitabellone con indicatori che mostrano quali tile sul tuo tabellone sono stati attaccati, devi convertire la coordinata tile del tabellone in una posizione del mondo sul minitabellone.
Convertire le coordinate tile in transform del mondo su minitabellone
La procedura per convertire la coordinata tile in una posizione del mondo sul minitabellone è la seguente:
Ottieni il fattore di scala del minitabellone.
Converti la coordinata tile in
vector3utilizzando il fattore di scala.Ruota l'indicatore in modo che corrisponda alla rotazione del minitabellone.
Restituisci il transform costruito.
Crea una funzione denominata GetDimensions per ottenere le dimensioni del tabellone di gioco:
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):
Successivamente, avrai bisogno di una procedura per convertire la coordinata tile in un transform posizionato sul minitabellone:
Assicurati che ci sia un minitabellone valido.
Ottieni le dimensioni del tabellone di gioco.
Ottieni la scala relativa di un tile nello spazio del minitabellone dalle dimensioni del minitabellone e dalle dimensioni più grandi del tabellone.
Ottieni il transform della visuale.
Definisci la rotazione necessaria per ruotare in avanti l'asse della mesh del minitabellone.
Costruisci la posizione del mondo offset ruotato rispetto al centro del minitabellone.
Ottieni il transform del minitabellone.
Aggiungi l'offset dal centro del minitabellone alla posizione del minitabellone, in modo da avere il transform del minitabellone per la coordinata tile.
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):
...
Posizionare un indicatore del minitabellone
Per posizionare un indicatore di minitabellone al suo interno, devi eseguire le seguenti azioni:
La coordinata tile del tabellone in cui si trova l'indicatore.
Determina se deve essere un indicatore di colpo inflitto o mancato
Costruisci una nuova enum per rappresentare il tipo di indicatore nel modulo DataTypes:
using{/Verse.org/Simulation}
using{/Verse.org/Random}
using{/UnrealEngine.com/Temporary/SpatialMath}
DataTypes<public> := module:
...
marker_type<public> := enum<open>:
Hit
Definisci una funzione SetMarker per posizionare un indicatore sul minitabellone nella classe minitabellone.
Questa funzione esegue i passaggi seguenti:
Assicurati che ci sia un minitabellone valido.
Determina il tipo di mesh indicatore da utilizzare: colpito o mancato.
Ottieni il transform del minitabellone della coordinata tile di input.
Genera l'indicatore.
Aggiungi l'indicatore all'array degli indicatori.
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):
...
Riepilogo
Per riassumere, questa pagina ti ha guidato attraverso i seguenti passaggi:
Posiziona un indicatore sul minitabellone.
Esegui conversioni tra spazio del minitabellone, spazio del tabellone e spazio mondo.
File
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