* Ability Task 개념
GA가 고용하는 노동자와 같음
GA가 일을시키고 AT가 일하는 개념
직접 일을 하는 애
종류 : 즉각적, 지속적
* 몽타주 실습
* next step
* 애니 특정시점에 불 발사 구현
* 할일
이벤트를 수신할때(만), 발사체를 발사하기 구현
c++에서 블루프린트콜러블 함수를 만듬
내용 : 발사체 구현생성하는 함수
void UAuraProjectileSpell::SpawnProjectile()
{
//발사체는 서버에서생성, 클라는 복제본을 보게될거임
//발사체가 서버에있는지 어케암?
const bool bIsServer = GetAvatarActorFromActorInfo()->HasAuthority(); //아바타액텨 ==불 의 권위확인
if(! bIsServer) return ; //발사체가 서버있는경우만 발사체 생성
ICombatInterface* CombatInterface = Cast<ICombatInterface>(GetAvatarActorFromActorInfo()); //해당액터가 전투인터를 구현하면, 얻을수있음
if(CombatInterface)
{
const FVector SocketLocation = CombatInterface->GetCombatSocketLocation();
FTransform SpawnTransform; //발사체생성할 위치 == 지팡이끝 / but, 캐릭터에의존하면안됨, 전투인터페이스에서 소켓위치를 반환받으면 좋겠음.
SpawnTransform.SetLocation(SocketLocation);
//TODO : 발사체 회전설정
//<생성하고자하는타입> (클래스, 날아갈 회전값, 수행자, 수행할폰, 충돌-겹침 상관없이 항상생성)
AAuraProjectile* Projectile = GetWorld()->SpawnActorDeferred<AAuraProjectile>(
ProjectileClass,
SpawnTransform,
GetOwningActorFromActorInfo(),
Cast<APawn>(GetOwningActorFromActorInfo()),
ESpawnActorCollisionHandlingMethod::AlwaysSpawn);
//TODO: 발사체에게 Gameplay Effect Spec 부여 => 데미지 주기위해
//발사체 생성완료하려면 발사체를 가져와야함(?)
Projectile->FinishSpawning(SpawnTransform);
}
}
- End Ability => 능력을 끝내야 능력을 다시 사용할수있게 설계했음.
* 문제발견
'UE5 > Ability Tasks' 카테고리의 다른 글
[UE5] 발사체 적방향으로 발사구현, shift키 + 허공클릭시 발사구현// 캐릭 겹침시 카메라 확대 해결, 클라에서 발사체 방향 버그 수정 (0) | 2024.06.13 |
---|---|
[UE5] GAS 에서 예측 개념 (0) | 2024.06.12 |
[UE5] 클라에서 서버로 data 보내고 받기 구현, 클라에서 캐릭안보임버그 해결 (0) | 2024.06.12 |
[UE5] GAS::Target Data System // 클라에서 서버로 data 전달방법 (0) | 2024.06.10 |
[UE5] 마우스아래 정보 전달용 AT클래스 구현 (0) | 2024.06.10 |