You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include"CoreMinimal.h"
#include"Character/ABCharacterBase.h"
#include"ABCharacterNonPlayer.generated.h"/** * */UCLASS()
class ARENABATTLE_API AABCharacterNonPlayer : public AABCharacterBase
{
GENERATED_BODY()
public:AABCharacterNonPlayer();
protected:voidSetDead() override;
};
6강: 캐릭터 공격 판정
충돌 채널의 설정
캐릭터 액션의 충돌 판정
Unity의 Collider, Raycast와 유사한 기능을 제공한다.
트레이스 채널과 충돌 프로필 생성
ABAction
(기본 반응은 무시)ABAction
트레이스 채널에 반응. 오브젝트 타입은Pawn
WorldStatic
실습
ProjectSetting -> Collision
에서ABAction
을 트레이스 채널로 설정한다.Preset
항목에서 새로운 프리셋을 생성한다.ABCapsule
프로필을 생성한다.ABAction
트레이스 채널에 반응하도록 설정한다. (대상 캡슐)ABTrigger
프로필을 생성한다.ABAction
트레이스 채널에 반응하도록 설정한다. (맵에 존재하는 오브젝트)Notify
를 생성한다.Notify
도 마찬가지로 사용자 지정으로 생성이 가능하다.virtual void Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation, const FAnimNotifyEventReference& EventReference) override;
Notify
가상 함수를 오버로딩하여 추가 구현을 진행한다.USkeletalMeshComponent
에 접근하여Owner
를 찾아서IABAnimationAttackInterface
를 구현한 객체를 찾아서AttackHitCheck
를 호출한다.IABAnimationAttackInterface
를 생성한다. (의존성 분리)공격 판정의 구현
월드 트레이싱 함수의 선택
크게 세 가지 카테고리로 원하는 함수 이름을 얻을 수 있다.
{처리방법}{대상}{처리설정}
캐릭터 공격 판정의 구현
{Sweep}{Single}{ByChannel}
물리 충돌 테스트
디버그 드로잉을 이용한 물리 충돌을 시각적으로 테스트한다.
실습
DrawDebugCapsule
은 디버그 드로잉을 사용하여 캡슐을 그린다.Debug.DrawRay
와 유사한 기능을 제공한다.TObjectPtr
로 선언하고,ConstructorHelpers
를 사용하여 초기화한다. (초기값 설정 방식이 코드에 들어갈 것 인지, 블루프린터로 할 것인지는 선택)TakeDamage
는 기본적으로 제공되는 액터의 데미지를 받는 함수이다. 이를 오버라이딩하여 데미지를 받았을 때의 처리를 구현한다. (추가적)SetDead
는 캐릭터의 움직임을 제한하고, 콜라이더를 비활성화하고, 죽음 몽타주를 재생한다.GetWorld()->GetTimerManager().SetTimer
정리
The text was updated successfully, but these errors were encountered: