728x90 Engine33 [UE5 KDT2024] 37. 팀세팅 2편 ▶️ 팀설정 함수 확인하기AAIPawnBase 에서 상속받은 IGenericTeamAgentInterface 타고 FGenericTeamId 타고 들어가면 팀설정 함수 확인 가능.TFunction : 언리얼에서 사용하는 함수 포인터 같은 아이 #include "GenericTeamAgentInterface.h"..class RESTART0501_API AAIPawnBase : public APawn, public IGenericTeamAgentInterface 1. 팀 나누기 1) 팀간 관계 설정AGameModeMain 에서#include "GenericTeamAgentInterface.h"...private:// 각 팀별로 서로 적인지, 아군인지 구분// 첫번째 키, 두번째 키 넣으면 둘의 관계를.. 2025. 3. 21. [UE5 KDT2024] 36. 맵 네비게이션, 팀셋팅 1편 1. AIController에서 액터 감지 후 블랙보드에 데이터를 저장시키자.void AMonsterAIControllerKDT::OnTargetFound( AActor* Actor, FAIStimulus Stimulus ){ // 감지성공 if ( Stimulus.WasSuccessfullySensed() ) { GEngine->AddOnScreenDebugMessage( 1, 10.f, FColor::Red, L"true" ); AController* con = Cast( Actor ); if ( IsValid( con ) ) Actor = con->GetPawn(); // 감지된 액터 메모리 저장. 블랙보드에 데이터를 저장. // Blackboard : AIController가 들고있.. 2025. 3. 20. [UE5 KDT2024] 35. 비헤이비어트리, 블랙보드 ▶️ 비헤이비어 언리얼에서 지원하는 트리기반의 노드시스템트리구조를 통해 ai를 컨트롤한다. ▶️루트 노드 : 가장 최상위 노드. 시작점. 자식 노드로 하나의 노드만 가질 수 있다. ▶️컴포짓 노드 : 트리 구조에서 여러 자식 노드를 가질 수 있는 노드.- 자식 노드들의 어떤 순서와 조건으로 실행될 지 결정- 노드에 데코레이터, 서비스를 부착할 수 있다. - 컴포짓 노드의 종류 :1) 시퀀스 노드 (Sequence) : 왼쪽 -> 오른쪽 실행. - 자식 노드 중 하나라도 실패한다면 실행을 중단. 시퀀스도 실패 2) 셀렉터 (Selector) : 왼쪽 -> 오른쪽 실행- 자식 노드 중 하나라도 성공하면 실행을 중단. 셀렉터도 성공 3) 심플페러럴 : 메인테스크와 보조트리를 동시에 실행. - 메인 테스크.. 2025. 3. 19. [UE5 KDT2024] 34. AIPerception 1. AI 컨트롤러를 생성해보자. 1) Controller 폴더에, AIController 상속받은 MonsterAIController 클래스 추가 생성자, BeginPlay(), Tick()만 override #include "EngineMinimal.h"#include "AIController.h"#include "MonsterAIController.generated.h"/** * */UCLASS()class RESTART0501_API AMonsterAIController : public AAIController{ GENERATED_BODY() public : AMonsterAIController();protected: virtual void BeginPlay() override;public .. 2025. 3. 18. [UE5 KDT2024] 33. 스킬 생성 2편 1. 스킬 충돌처리 후 몬스터 죽음처리 1)SkillBase.hUFUNCTION()void OnSkillOverlapBegin( UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult ); #include "PlayerBase.h"void ASkillBase::BeginPlay(){ Super::BeginPlay(); if ( HasAuthority() ) mCollision->OnComponentBeginOverlap.AddDynamic( this, &ASkillBa.. 2025. 3. 17. 이전 1 2 3 4 ··· 7 다음 728x90