보드에서 어떤 타일이 공격당했는지 보여주는 표시기로 미니보드를 표시하려면, 보드 타일 좌표를 미니보드상의 월드 위치로 변환해야 합니다.
타일 좌표를 미니보드상의 월드 트랜스폼으로 변환하기
타일 좌표를 미니보드상의 월드 위치로 변환하는 절차는 다음과 같습니다.
미니보드의 스케일 인수를 구합니다.
스케일 인수를 사용해 타일 좌표를
vector3로 변환합니다.미니보드 회전과 일치하도록 마커를 회전합니다.
생성된 트랜스폼을 반환합니다.
이름이 GetDimensions인 함수를 만들어 게임보드의 치수를 구합니다.
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 }
miniboard<public> := class(creative_device):
...
미니보드 마커 배치하기
미니보드에 미니보드 마커를 배치하려면 다음을 알아야 합니다.
마커가 위치할 보드 타일 좌표.
적중 마커와 빗나감 마커 중 무엇이 되어야 하는지.
새 열거형을 생성해 DataTypes 모듈 내 마커 유형을 표현합니다.
using{/Verse.org/Simulation}
using{/Verse.org/Random}
using{/UnrealEngine.com/Temporary/SpatialMath}
DataTypes<public> := module:
...
marker_type<public> := enum<open>:
Hit
함수 SetMarker를 정의해 미니보드 클래스 내 미니보드에 마커를 배치합니다.
이 함수는 다음 단계를 수행합니다.
유효한 미니보드가 있는지 확인합니다.
적중 또는 빗나감 마커 메시 중 무엇을 사용할지 결정합니다.
입력 타일 좌표의 미니보드 트랜스폼을 구합니다.
마커를 생성합니다.
마커 배열에 마커를 추가합니다.
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):
...
요약
요약해 보면, 이 페이지에서는 다음 단계를 살펴보았습니다.
미니보드에 마커를 배치합니다.
미니보드 스페이스, 보드 스페이스, 월드 스페이스 간 변환합니다.
Files
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