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("저격총"));
    }