
프로젝트 컴파일 오류
Visual Studio Integration Tool을 설치하려다가 뭔가 잘못된건지 컴파일 에러가 발생함.
CoreMinimal.h와 같은 가장 기본적인 언리얼 헤더 파일들을 E1696 에러코드가 발생.
(헤더 파일들을 파악하지 못함)
여러 방법을 시도해 보았으나, 결국 프로젝트 소스코드와 컨텐츠 브라우저 에셋들을 탐색기에서 백업해두고 커밋 버전을 이전으로 돌려봄.

위와 같은 방식으로, 프로젝트 파일에 Modules 항목을 추가해서 해결할 수 있었음.
"Modules": [
{
"Name" : "Aura",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"Engine"
]
}
],
// 단 한 글자라도 오타가 나면 솔루션 파일이 제대로 생성되지 않으므로
// 오탈자에 항상 유의할 것!
Attribute Set (AS)
float형태로 존재함.float 변수로 이루어진 구조체임.Replication / RepNotify
Replicated로 지정하려면 UPROPERTY 매크로에 Replicated 선언을 해주면 된다.UPROPERTY(Replicated)
FGameplayAttributeData Health;```cpp
// 함수 선언
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
// 함수 구현
void UAuraAttributeSet::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
// DOREPLIFETIME 매크로에는 여러 종류가 있는데, 여기서는 DOREPLIFETIME_CONDITION_NOTIFY를 사용.
// 매개변수는 '현재 클래스 이름, Replicated 되는 변수, Replicate가 발생하는 조건(ELifetimeCondition), RepNotify가 발생하는 조건'임.
DOREPLIFETIME_CONDITION_NOTIFY(UAuraAttributeSet, Health, COND_None, REPNOTIFY_Always);
}
```UPROPERTY 매크로에 ReplicatedUsing 을 사용하며 아래와 같이 하면 된다.```cpp
// ReplicatedUsing을 사용하고, 트리거 될 함수의 이름을 'OnRep_변수이름'으로 지정.
UPROPERTY(ReplicatedUsing = OnRep_Health)
FGameplayAttributeData Health;
// RepNotify 함수는 매개변수를 0개 또는 1개만 받을 수 있다.
// 매개변수는 반드시 Replicated된 변수와 동일한 타입이어야 한다.
// 매개변수는 Replicated되기 *이전* 의 값이 전달된다.
UFUNCTION()
void OnRep_Health(const FGameplayAttributeData& OldHealth);
``````cpp
void UAuraAttributeSet::OnRep_Health(const FGameplayAttributeData& OldHealth)
{
// GAMEPLAYATTRIBUTE_REPNOTIFY 매크로를 이용하여 ASC에 변경 사항을 전달.
// 매개변수는 '현재 클래스(AS)의 이름, Replicated된 변수, 이전 값'임.
GAMEPLAYATTRIBUTE_REPNOTIFY(UAuraAttributeSet, Health, OldHealth);
}
```