⭐ Unreal Engine/UE Debugging Log
[UE] Gameplay Tag: TagName=Illegal name (block index out of range)
Designerd
2024. 7. 24. 18:27
GameplayTag를 불러서 사용하는데 문제가 발생했다. TagName=Illegal name (block index out of range) 란 문구가 띄면서 Tag가 제대로 불러오지 않았다.
목차
Gameplay Tag: TagName=Illegal name (block index out of range)
문제 상황
TagName=Illegal name (block index out of range)
GameplayTag를 가져와 사용하려는데 위와 같은 문구가 띄면서 문제가 발생한다.
원인
XZGameplayTags.h
#pragma once
#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
struct FXZTags
{
public:
static const FXZTags& GetXZTags() { return GameplayTags; }
static void InitializeNativeGameplayTags(); // GameplayTags 등록
// Weapon
FGameplayTag Weapon_Projectile_Rifle;
FGameplayTag Weapon_Projectile_Pistol;
FGameplayTag Weapon_Projectile_SMG;
FGameplayTag Weapon_Hitscan_SnipperRifle;
private:
static FXZTags GameplayTags;
};
XZGameplayTags.cpp
#include "XZGameplayTags.h"
#include "GameplayTagsManager.h"
FXZTags FXZTags::GameplayTags; // static GamplayTags instance
void FXZTags::InitializeNativeGameplayTags()
{
// Weapon
GameplayTags.Weapon_Projectile_Rifle = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Projectile.Rifle")), FString("소총"));
GameplayTags.Weapon_Projectile_Pistol = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Projectile.Pistol")), FString("권총"));
GameplayTags.Weapon_Projectile_Rifle = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Projectile.SMG")), FString("서브머신건"));
GameplayTags.Weapon_Hitscan_SnipperRifle = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Hitscan.SnipperRifle")), FString("저격총"));
}
해결방안
XZGameplayTags.cpp
#include "XZGameplayTags.h"
#include "GameplayTagsManager.h"
FXZTags FXZTags::GameplayTags; // static GamplayTags instance
void FXZTags::InitializeNativeGameplayTags()
{
// Weapon
GameplayTags.Weapon_Projectile_Rifle = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Projectile.Rifle")), FString("소총"));
GameplayTags.Weapon_Projectile_Pistol = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Projectile.Pistol")), FString("권총"));
GameplayTags.Weapon_Projectile_Rifle = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Projectile.SMG")), FString("서브머신건"));
GameplayTags.Weapon_Hitscan_SnipperRifle = UGameplayTagsManager::Get().AddNativeGameplayTag(FName(TEXT("Weapon.Hitscan.SnipperRifle")), FString("저격총"));
}