* FResultHit CursorHit을 맴버변수로두고, 재사용하기로함
void CursorTrace();
TScriptInterface<IEnemyInterface> LastActor; //가장최근에 가리킨 적
TScriptInterface<IEnemyInterface> ThisActor; //현재커서위치가 가리키는 적
FHitResult CursorHit;
-기존
FHitResult Hit;
if(GetHitResultUnderCursor(ECC_Visibility,false,Hit))
{
CachedDestination = Hit.ImpactPoint; //커서눌린위치를 저장
}
-리팩토링
if(CursorHit.bBlockingHit)
{
CachedDestination = CursorHit.ImpactPoint; //커서눌린위치를 저장
}
* 클라에서 포션먹음 메시지 안뜨는 버그수정
-원인 : ASC > EffectApplied 가 서버에서만 콜되고 있어서임 / 즉, 클라로 복제가 안됬음
생성자에서 델리게이트 하고있음
void UAuraAbilitySystemComponent::AbilityActorInfoSet()
{
OnGameplayEffectAppliedDelegateToSelf.AddUObject(this,&UAuraAbilitySystemComponent::EffectApplied);
}
델리게이트 설명이 서버에서 콜 된다고함
/** Called on server whenever a GE is applied to self. This includes instant and duration based GEs. */
FOnGameplayEffectAppliedDelegate OnGameplayEffectAppliedDelegateToSelf;
- 해결 :
* 클라이언트 RPC : 서버에서 실행되고, 클라에 복제해줘
ufunction안에 client옵션을넣고, 함수명앞에 Client붙이는계 관례다.
UFUNCTION(Client,Reliable) //클라이언트 RPC, 신뢰성(패킷이 손실되도 클라에 도착보장)
void ClientEffectApplied(UAbilitySystemComponent* AbilitySystemComponent, const FGameplayEffectSpec& EffectSpec, FActiveGameplayEffectHandle ActiveEffectHandle);
구현부뒤에 함수명_Implementation 붙여야함
void UAuraAbilitySystemComponent::ClientEffectApplied_Implementation(UAbilitySystemComponent* AbilitySystemComponent,
const FGameplayEffectSpec& EffectSpec, FActiveGameplayEffectHandle ActiveEffectHandle)
{
FGameplayTagContainer TagContainer;
EffectSpec.GetAllAssetTags(TagContainer); ///** Appends all tags that apply to this gameplay effect spec */
EffectAssetTags.Broadcast(TagContainer);
}
그 함수로 델리게이트 교체
void UAuraAbilitySystemComponent::AbilityActorInfoSet()
{
OnGameplayEffectAppliedDelegateToSelf.AddUObject(this,&UAuraAbilitySystemComponent::ClientEffectApplied);
}
'UE5 > Gameplay Abilities' 카테고리의 다른 글
[UE5] fix : 커서트레이스 버그수정, 고블린눌러도 불 안나가는 버그수정? (0) | 2024.06.09 |
---|---|
[UE5] 파이어볼 생성 구현 (0) | 2024.06.09 |
[UE5] Click To Move 구현 (0) | 2024.06.09 |
[UE5] 태그에 맞는 능력 활성화 구현 (0) | 2024.06.09 |
[UE5] Input바인딩용 클래스 생성, 클릭이벤트 발생 테스트 (0) | 2024.06.09 |