반응형

2025/09 6

[UE] FString, TCHAR

TCHAR LogCharArray[] = TEXT("Hello Unreal"); FString LogCharString = LogCharArray; UE_LOG(LogTemp, Log, TEXT("%s"), *LogCharString);UE_LOG 마지막에 인자에는 왜 FString타입에서 *operator로 한 번 더 접근해야할까.코드를 타고 들어가보면 결국 위에서 %s에 해당하는 인자는 TCHAR* 타입을 넘겨야하는걸 알 수 있다. 그럼 FString에서 * operator로 한 번 접근하면 TCHAR*라는 말인가? DataType 이라는 타입은 여기서 TArray 타입(TArray → ElementType = TCHAR)따라서 GetData()의 반환 타입은 TCHAR*

공부/UE 2025.09.24

[UE] AttributeSet을 생성만 해줘도 자동으로 ASC가 인식하는 이유

ChatGPT에게 이런식으로 CDO 영역에 Actor가 AttributeSet를 생성만 해줬는데 어떻게 ASC가 이를 인식하고 적용한 지 물어봤고 아래는 그에 대한 답변이다 좋은 포인트 짚으셨어요 👍UAbilitySystemComponent::InitializeComponent 시점에서 AttributeSet들이 자동으로 ASC(AbilitySystemComponent)에 붙는 이유를 단계별로 설명드릴게요.1. AttributeSet은 UObjectUAttributeSet은 UObject 기반이라서, 보통 UAbilitySystemComponent의 DefaultSubobject 또는 Owner의 Subobject로 만들어집니다.즉, ASC가 소유한 액터(보통 ACharacter, AActor 등)에 ..

공부/UE 2025.09.20

[UE] 각종 Ability가 GAS의 ActorInfo에 접근할 수 있는 이유

GetAbilitySystemComponentFromActorInfo_Checked() 함수는 CurrentActorInfo를 통해 AbilitySystemComponent에 접근할 수 있다. 그럼 CurrentActorInfo는 언제 세팅된건지 파악해보면 게임 시작 직후에 Player가 빙의될 때, AbilitySystemComponent가 블프로 세팅한 각 어빌리티들에 대해 GiveAbility를 호출해주고 있다. 이때 FGameplayAbilitySpec타입의 FGameplayAbilitySpec을 전달해준다 코드를 타고 들어가다보면 UAbilitySystemComponent::OnGiveAbility 내에서 각 어빌리티들에게 자신이 갖고 있는 AbilityActorInfo를 넘겨준다. 그럼 AS..

공부/UE 2025.09.20

[UE] Notify, AbilityTask, TargetActor를 이용한 공격 판정

애니메이션 특정 프레임에 쏠 UAnimNotify를 상속받은 UAnimNotify_GASAttackHitCheck클래스 생성 특정 시점에 UAnimNotify_GASAttackHitCheck::Notify가 호출 UAnimNotify_GASAttackHitCheck::Notify 내부에서 UAbilitySystemBlueprintLibrary::SendGameplayEventToActor 호출 블루프린트에서 AnimationNotify를 UAnimNotify_GASAttackHitCheck로, SendGameplayEventToActor 인자로 날릴 Tag를 세팅 UABGA_AttackHitCheck라는 GameplayAbility를 생성해준다 - 해당 GA가 필요한 이유는 노티파이로 이 GA의 활성화(..

공부/UE 2025.09.17
반응형