UE4 C++ 플레이어를 시인하는 적을 만든다

안녕



적 AI를 C++로 만들려고 할 때 곤란했기 때문에 써줘.
이번에는 플레이어를 시인할 수 있는 적을 만들게.



환경



언리얼 엔진 4.22.3
Visual Studio 2019 커뮤니티

프로젝트 만들기





프로젝트를 만들었으면 콘텐츠 브라우저를 마우스 오른쪽 버튼으로 클릭하고 Enemy 폴더를 만듭니다.



적 만들기



콘텐츠 브라우저를 마우스 오른쪽 버튼으로 클릭하고 새 C++ 클래스에서 Character를 선택하여 만듭니다.
여기에서는 MyEnemy 라고 이름을 붙여.





MyEnemy 클래스를 만들었으면 MyEnemy 클래스를 마우스 오른쪽 버튼으로 클릭하고 Blueprint -> Characte만들 장소는 처음에 만들었다 BP_MyEnemy 폴더





만들 수 있으면 Enemy 에 외형을 추가하겠습니다.
컴포넌트에서 BP_MyEnemy 를 클릭하고 MeshStaticMesh 를 선택합니다.



잘 추가되면 위치를 -90, 회전을 -90으로 설정하십시오.



다음으로 움직임을 추가하겠습니다.
SK_MannequinMeshAnimationAnim Class


이제 OK. 컴파일하고 저장하고 적절한 위치에 배치.


적이 플레이어를 볼 수있게 해줍니다.



콘텐츠 브라우저를 마우스 오른쪽 버튼으로 클릭하고 새 C++ 클래스에서 모든 클래스 보기를 선택하고 ThirdPerson_AnimBP_C 를 선택합니다.
여기에서는 AIController 라고 했어.




MyEnemyAIController 클래스를 마우스 오른쪽 버튼으로 클릭하고 MyEnemyAIControllerBP_MyEnemyAIController 가 있는 곳에 만듭니다.





만들 수 있으면, BP_MyEnemy 를 열고 BP_Enemy 에 미리 만든 AIController 를 선택.



가능하면 컴파일하고 저장하십시오.

구현할 것입니다.


BP_MyEnemyAIController로 이동하여 Visual StudioMyEnemy.cpp에 각각 추가하십시오.

MyEnemy.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "MyEnemy.generated.h"

UCLASS()
class MYPROJECT_API AMyEnemy : public ACharacter
{
    GENERATED_BODY()

public:
    // Sets default values for this character's properties
    AMyEnemy();

    UPROPERTY(VisibleAnywhere, Category = "AI")
        class UPawnSensingComponent* PawnSensingComp;

    UFUNCTION()
        void OnSeePlayer(APawn* Pawn);

    virtual void BeginPlay() override;

};


MyEnemy.cpp

#include "MyEnemy.h"
#include "Perception/PawnSensingComponent.h"
#include "Engine.h"

AMyEnemy::AMyEnemy()
{
    PawnSensingComp = CreateDefaultSubobject<UPawnSensingComponent>(TEXT("PawnSensingComp"));
    // 敵キャラの視野。0 ~ 180度で設定してね。
    PawnSensingComp->SetPeripheralVisionAngle(60.0f);
    // 敵キャラの見ることのできる範囲
    PawnSensingComp->SightRadius = 2000;
    PawnSensingComp->OnSeePawn.AddDynamic(this, &AMyEnemy::OnSeePlayer);
}

void AMyEnemy::OnSeePlayer(APawn* Pawn)
{
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Green, "See");
}

void AMyEnemy::BeginPlay()
{
    Super::BeginPlay();
}

쓸 수 있으면, MyEnemy.h 에 돌아와 컴파일, 그리고 재생하면,



할 수 있었다!

다음, UE4 C++에서 비헤이비어 트리 작업 작성

도중에 누락되면 미안해.

좋은 웹페이지 즐겨찾기