UE5

    [UE5] 마우스아래 정보 전달용 AT클래스 구현

    [UE5] 마우스아래 정보 전달용 AT클래스 구현

    * 나만의 AT 만들기- 구현UCLASS()class AURA_API UTargetDataUnderMouse : public UAbilityTask{ GENERATED_BODY() //메타 => 기본값으로 this ==self 지정 UFUNCTION(BlueprintCallable, Category="Ability|Tasks", meta=(DisplayName = "TargetDataUnderMouse",HidePin="OwningAbility", DefaultToSelf="OwningAbility",BlueprintInternalUseOnly="true")) static UTargetDataUnderMouse* CreateTargetDataUnderMouse(UGamep..

    [UE5] Ability Task 개념, 불 발사 몽타주 구현

    [UE5] Ability Task 개념, 불 발사 몽타주 구현

    * Ability Task 개념GA가 고용하는 노동자와 같음GA가 일을시키고 AT가 일하는 개념직접 일을 하는 애 종류 : 즉각적, 지속적 * 몽타주 실습  * next step * 애니 특정시점에 불 발사 구현  * 할일이벤트를 수신할때(만), 발사체를 발사하기 구현c++에서 블루프린트콜러블 함수를 만듬내용 : 발사체 구현생성하는 함수void UAuraProjectileSpell::SpawnProjectile(){ //발사체는 서버에서생성, 클라는 복제본을 보게될거임 //발사체가 서버에있는지 어케암? const bool bIsServer = GetAvatarActorFromActorInfo()->HasAuthority(); //아바타액텨 ==불 의 권위확인 if(! bIsServe..

    [UE5] fix : 커서트레이스 버그수정, 고블린눌러도 불 안나가는 버그수정?

    [UE5] fix : 커서트레이스 버그수정, 고블린눌러도 불 안나가는 버그수정?

    * 해결아래와같이 리뉴얼함- 이전코드// // CursorHit에서 반환된 충돌된 액터를 IEnemyInterface로 캐스팅하여 ThisActor에 할당합니다.// // IEnemyInterface를 구현한 액터에 대해서만 작동합니다.// //아닌 액터이면 nullptr// //* interface는 =안됨, setter써야함! *// AActor* HitActor = CursorHit.GetActor();// if (HitActor && HitActor->Implements())// {// ThisActor.SetObject(HitActor);// ThisActor.SetInterface(Cast(HitActor));// }//// /**// * Line trace from cursor. The..

    [UE5] 파이어볼 생성 구현

    [UE5] 파이어볼 생성 구현

    * 발사체주문 클래스 생성 * 발사체주문 클래스에 뭐가 필요한지 생각* 능력활성화 함수 Test (c++ , BP)class AURA_API UAuraProjectileSpell : public UAuraGameplayAbility{ GENERATED_BODY()protected: virtual void ActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData* TriggerEventData) override; }; 일..

    [UE5] PC 리팩토링, 클라에서 포션먹음 메시지 안뜨는 버그수정, 클라이언트 RPC

    [UE5] PC 리팩토링, 클라에서 포션먹음 메시지 안뜨는 버그수정, 클라이언트 RPC

    * FResultHit CursorHit을 맴버변수로두고, 재사용하기로함void CursorTrace();TScriptInterface LastActor; //가장최근에 가리킨 적TScriptInterface ThisActor; //현재커서위치가 가리키는 적FHitResult CursorHit; -기존FHitResult Hit;if(GetHitResultUnderCursor(ECC_Visibility,false,Hit)){ CachedDestination = Hit.ImpactPoint; //커서눌린위치를 저장}-리팩토링if(CursorHit.bBlockingHit){ CachedDestination = CursorHit.ImpactPoint; //커서눌린위치를 저장}  *  클라에서 포션먹음..

    [UE5] Click To Move 구현

    [UE5] Click To Move 구현

    * 언리얼 TopDown 예시 살펴보기- 원인눌럿다떼면 복제기능이 없는 simpleMove가 실행되서 안되는거임즉, 멀티플에이어인경우 클라의경우 계속눌르고있어야 이동가능함 * 우리의 Click to move설계AddMove를 써야함 && 장애물처리 구현해야함 * 설계  * 언리얼을 배껴서 변수생성PC FVector CachedDestination=FVector::ZeroVector; //클릭된 목적지 저장 float FollowTime=0.f; //놓기전에 얼마나 오랫동안 마우스 눌렀는지 저장 float ShortPressThreshold = 0.f; //짧게눌렀는지 판단하는 기준 bool bAutoRunning=false; UPROPERTY(EditDefaultsOnly) ..

    [UE5] 태그에 맞는 능력 활성화 구현

    [UE5] 태그에 맞는 능력 활성화 구현

    * GA에서 시작태그가 뭔지확인용 변수추가UCLASS()class AURA_API UAuraGameplayAbility : public UGameplayAbility{ GENERATED_BODY()public: UPROPERTY(EditDefaultsOnly,Category="Input") FGameplayTag StartupInputTag;};* ASC에서 그 태그를 확인하고 동적태그에 추가 => 런타입에 변경가능능력활성화void UAuraAbilitySystemComponent::AddCharacterAbilities(const TArray>& StartupAbilities){ //모든 시작능력에대해 for(const TSubclassOf AbilityClass : Star..