1.캐릭베이스 > ASC, AS 추가해주기
UPROPERTY()
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent;
UPROPERTY()
TObjectPtr<UAttributeSet> AttributeSet; //속성을 가르키는 포인터
2. 적의경우 적 클래스내부에서 직접 초기화할것임 //PS사용안할것임!
AAuraEnemy::AAuraEnemy()
{
// 가시성 콜리전 채널(ECollisionChannel::ECC_Visibility)에 대한 메시 콜리전 응답을 ECollisionResponse::ECR_Block으로 설정합니다.
// 이래야 윤곽선나옴
GetMesh()->SetCollisionResponseToChannel(ECC_Visibility, ECR_Block);
AbilitySystemComponent = CreateDefaultSubobject<UAuraAbilitySystemComponent>("AbilitySystemComponent");
// UAuraAbilitySystemComponent 타입의 AbilitySystemComponent를 기본 하위 객체로 생성합니다.
// "AbilitySystemComponent"라는 이름을 가진 이 컴포넌트는 캐릭터의 능력(스킬)을 관리합니다.
AbilitySystemComponent->SetIsReplicated(true);
// AbilitySystemComponent의 네트워크 복제를 활성화합니다.
// 이는 멀티플레이어 게임에서 다른 플레이어들과 능력 정보를 동기화하기 위해 필요합니다.
AttributeSet = CreateDefaultSubobject<UAuraAttributeSet>("AttributeSet");
// UAuraAttributeSet 타입의 AttributeSet을 기본 하위 객체로 생성합니다.
// "AttributeSet"이라는 이름을 가진 이 컴포넌트는 캐릭터의 다양한 속성(예: 체력, 마나, 공격력 등)을 관리합니다.
}
3. 플레이어의경우 PS에서 ASC,AS를 가지도록 구현
위의 코드를 고대로 PS에 넣으면됨
4. ASC에서 제공하는 인터페이스 추가 => Component Getter 사용
/** Returns the ability system component to use for this actor.
//It may live on another actor, such as a Pawn using the PlayerState's component */
virtual UAbilitySystemComponent* GetAbilitySystemComponent() const = 0;
순수가상함수 -> 구현해줘야함
컴포넌트를 리턴만해주면됨
UAbilitySystemComponent* AAuraPlayerState::GetAbilitySystemComponent() const
{
return AbilitySystemComponent;
}
5. 속성 Getter는 직접 만들어 줘야함
UAttributeSet* GetAttributeSet() const {return AttributeSet;} //@Getter
4,5번작업을 PS, Enemy 클래스에 각각 해주면됨!
6. 할일 : PS와 Player를 연결해줘야함
Player에서 Component, AS호출시 nullptr임!
'UE5 > GAS' 카테고리의 다른 글
[UE5] GAS 속성개념, 구현, 속성추가방법, 디버깅방법 (0) | 2024.05.26 |
---|---|
[UE5] GAS Ability Actor Info // 능력 정보초기화 하는방법 (0) | 2024.05.26 |
[UE5] GAS 복제 모드 설정 // 멀티플레이설계 -> 싱글플레이 작동가능(역X) (0) | 2024.05.26 |
[UE5] Gas Server 이해 (0) | 2024.05.26 |
[UE5] GAS 개요이해 // PlayerState, ASComponent, AttributeSet (0) | 2024.05.26 |