언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

전기 광선 스킬 - 5) 문제 수정

monstro 2025. 11. 25. 14:35
728x90
반응형

- 개요

프로젝트에서 발생하는 여러 문제와 연관된 코드를 수정한다

 

1) 확장된 GameplayEffectContext 클래스의 네트워크 직렬화 문제

관련 클래스 :  AuraAbilityTypes 클래스 - AuraGameplayEffectContext 클래스

 

GetScriptStruct 함수에서 부모 클래스를 반환하지 않고 자기자신을 반환하도록 수정한다

 

NetSerialize 함수 수정 (1)

 

NetSerialize 함수 수정 (2)

 

NetSerialize 함수 수정 (3)

 

NetSerialize 함수를 위와 같이 수정한다

각각 다음과 같다

  • 부모 클래스인 GameplayEffectContext에서 이미 사용하는 비트를 직렬화
  • 직렬화하는 비트의 범위1칸 증가시켜 여유있게 처리
  • 부모 클래스에서 이미 처리한 bOutSuccess를 반환

 

2) 쿨타임 GE를 적용하기 이전의 검증처리

관련 클래스 : WaitCooldownChange 클래스

 

OnActiveEffectAdded 함수에 위와 같이 로직을 추가하여

쿨타임의 GE 적용하기 이전 GE의 계산에 필요한 Attribute가 캡쳐되었는지 확인한다

 

3)  AI 개선

관련 클래스 : BTService_FindNearestPlayer 클래스

 

TickNode 함수를 위와 같이 수정하여 플레이어가 쓰러졌다면 로직을 수행하지 않도록 설정한다

 

4) Attribute 변동 + 텍스트 팝업 

관련 클래스 : AuraAttributeSet 클래스

 

PostAttributeChange 함수를 위와 같이 수정하여 레벨업된 경우에만 

현재 체력현재 마나최대 체력최대 마나로 설정한다

 

 

ShowFloatingText 함수를 위와 같이 수정하여

데미지를 입히거나 데미지를 입은 경우 팝업되는 UI모든 플레이어가 확인할 수 있도록 설정한다

 

 

HandleIncomingXP 함수를 위와 같이 수정하여

레벨업을 먼저 진행한 후에 레벨에 맞춰 스킬 포인트능력치 포인트를 얻을 수 있도록 설정한다

 

5) 입력을 통한 어빌리티 발동

관련 클래스 : AuraAbilitySystemComponent 클래스

 

AbilityInputTagPressed 함수를 위와 같이 수정하여

현재 발동된 GASpec기본 인스턴스ActivationPredictionKey를 사용하여

클라이언트에서 발동한 GA의 Prediction을 처리하도록 수정한다

 

 

AbilityInputTagReleased 함수를 위와 같이 수정한다

입력을 뗀 키와 연동된 어빌리티를 수행하고,

해당 어빌리티가 발동중이라면 현재 발동된 GASpec 기본 인스턴스ActivationPredictionKey를 사용한다

 

6) 캐릭터의 물리 작용

관련 클래스 : AuraCharacterBase 클래스

 

MulticastHandleDeath 함수를 위와 같이 수정하여 쓰러진 캐릭터가 

ECC_WorldStatic 채널을 가진 모든 오브젝트통과하지 못하고 충돌하도록 설정한다

728x90
반응형