UE4 C++ 플레이어를 시인하는 적을 만든다
9484 단어 위 4UnrealEngineUnrealC++
안녕
적 AI를 C++로 만들려고 할 때 곤란했기 때문에 써줘.
이번에는 플레이어를 시인할 수 있는 적을 만들게.

환경
언리얼 엔진 4.22.3
Visual Studio 2019 커뮤니티
프로젝트 만들기

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

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



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


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

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

다음으로 움직임을 추가하겠습니다.
SK_Mannequin
의 Mesh
의 Animation
에 Anim Class

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

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


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


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

가능하면 컴파일하고 저장하십시오.
구현할 것입니다.
BP_MyEnemyAIController
로 이동하여 Visual Studio
및 MyEnemy.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++에서 비헤이비어 트리 작업 작성
도중에 누락되면 미안해.
Reference
이 문제에 관하여(UE4 C++ 플레이어를 시인하는 적을 만든다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pto8913/items/3641d4e896a933e0d10a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
언리얼 엔진 4.22.3
Visual Studio 2019 커뮤니티
프로젝트 만들기

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

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



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


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

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

다음으로 움직임을 추가하겠습니다.
SK_Mannequin
의 Mesh
의 Animation
에 Anim Class

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

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


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


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

가능하면 컴파일하고 저장하십시오.
구현할 것입니다.
BP_MyEnemyAIController
로 이동하여 Visual Studio
및 MyEnemy.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++에서 비헤이비어 트리 작업 작성
도중에 누락되면 미안해.
Reference
이 문제에 관하여(UE4 C++ 플레이어를 시인하는 적을 만든다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pto8913/items/3641d4e896a933e0d10a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
콘텐츠 브라우저를 마우스 오른쪽 버튼으로 클릭하고 새 C++ 클래스에서
Character
를 선택하여 만듭니다.여기에서는
MyEnemy
라고 이름을 붙여.


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

만들 수 있으면
Enemy
에 외형을 추가하겠습니다.컴포넌트에서
BP_MyEnemy
를 클릭하고 Mesh
로 StaticMesh
를 선택합니다.
잘 추가되면 위치를 -90, 회전을 -90으로 설정하십시오.

다음으로 움직임을 추가하겠습니다.
SK_Mannequin
의 Mesh
의 Animation
에 Anim Class

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

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


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


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

가능하면 컴파일하고 저장하십시오.
구현할 것입니다.
BP_MyEnemyAIController
로 이동하여 Visual Studio
및 MyEnemy.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++에서 비헤이비어 트리 작업 작성
도중에 누락되면 미안해.
Reference
이 문제에 관하여(UE4 C++ 플레이어를 시인하는 적을 만든다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pto8913/items/3641d4e896a933e0d10a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
BP_MyEnemyAIController
로 이동하여 Visual Studio
및 MyEnemy.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++에서 비헤이비어 트리 작업 작성
도중에 누락되면 미안해.
Reference
이 문제에 관하여(UE4 C++ 플레이어를 시인하는 적을 만든다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pto8913/items/3641d4e896a933e0d10a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)