UE5/Gameplay Abilities

    [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..

    [UE5] Input바인딩용 클래스 생성, 클릭이벤트 발생 테스트

    [UE5] Input바인딩용 클래스 생성, 클릭이벤트 발생 테스트

    *  Input 바인딩용 클래스 생성기존 : PC에서 바인딩해줬음void AAuraPlayerController::SetupInputComponent(){ Super::SetupInputComponent(); // 부모 클래스의 SetupInputComponent() 함수 호출 // InputComponent를 UEnhancedInputComponent 형으로 변환하고 검사합니다. //Get 인핸스드 인풋 컴포넌트 UEnhancedInputComponent* EnhancedInputComponent = CastChecked(InputComponent); // MoveAction이 발생할 때 AAuraPlayerController 클래스의 Move() 함수를 바인딩합니다. ..

    [UE5] 태그-입력 연결 구현, 런타임에 입력변경 구현준비

    [UE5] 태그-입력 연결 구현, 런타임에 입력변경 구현준비

    *구현1. Data Asset 만들기#pragma once#include "CoreMinimal.h"#include "Engine/DataAsset.h"#include "AuraInputConfig.generated.h"/** * */UCLASS()class AURA_API UAuraInputConfig : public UDataAsset{ GENERATED_BODY() }; 2. 설계구조체 : InputAction, Tag변수 : 구조체( InputAction, Tag )배열을 가짐함수 : 태그에 맞는 InputAction 찾는 함수// Fill out your copyright notice in the Description page of Project Settings.#pragma onc..