Para marcar el minitablero con indicadores que muestren qué cuadros de tu tablero han sido atacados, necesitas convertir una coordenada de cuadro del tablero a una ubicación en el mundo sobre el minitablero.
Conversión de coordenadas de cuadro a transformación del entorno en el minitablero
El procedimiento para convertir una coordenada de cuadro en una ubicación del entorno en el minitablero es el siguiente:
Obtén el factor de escala del minitablero.
Convierte la coordenada del cuadro a
vector3mediante el factor de escala.Gira el marcador para que coincida con la rotación del minitablero.
Devuelve la transformación construida.
Crea una función llamada GetDimensions para obtener las dimensiones del tablero de juego:
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):
A continuación, necesitarás un procedimiento para convertir una coordenada de cuadro en una transformación ubicada en el minitablero:
Asegúrate de que haya un minitablero válido.
Obtén las dimensiones del tablero de juego.
Obtén la escala relativa de un cuadro en el espacio del minitablero a partir de las dimensiones del minitablero y de las dimensiones más grandes del tablero.
Obtén la transformación de la cámara.
Define la rotación requerida para rotar el eje de la malla del minitablero hacia adelante.
Construye la ubicación en el entorno con desplazamiento rotado con respecto al centro del minitablero.
Obtén la transformación del minitablero.
Añade el desplazamiento del minitablero desde el centro a la ubicación del minitablero para obtener la transformación del minitablero correspondiente a la coordenada de cuadro.
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):
...
Colocación de un marcador de minitablero
Para colocar un marcador de minitablero en él, debes saber lo siguiente:
Se ubicará la coordenada del cuadro de tablero donde se encuentra el marcador.
Si debe ser un marcador de impacto o un marcador de fallo.
Construye una nueva enum para representar el tipo de marcador en el módulo DataTypes:
using{/Verse.org/Simulation}
using{/Verse.org/Random}
using{/UnrealEngine.com/Temporary/SpatialMath}
DataTypes<public> := module:
...
marker_type<public> := enum<open>:
Hit
Define una función SetMarker para colocar un marcador en el minitablero en la clase del minitablero.
Esta función realiza los siguientes pasos:
Asegura que haya un minitablero válido.
Determina qué tipo de malla de marcador usar: impacto o fallo.
Obtiene la transformación del minitablero de la coordenada de cuadro de entrada.
Genera el marcador.
Añade el marcador a la matriz de marcadores.
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):
...
Resumen
En resumen, esta página te llevó a través de los siguientes pasos:
Colocar un marcador en el minitablero.
Convertir entre el espacio del minitablero, el espacio del tablero y el espacio del entorno.
Archivos
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