5595人加入学习
(18人评价)
【旧版】Unreal初级课程 - 3D吃豆人

旧版课程,制作完成于2018-03-29,基于Unreal 4.18

价格 免费

选中C++类,点击添加新项

新建C++类---继承自Character类---Enemy

#include "Public/Enemy.h"

 

新建C++类--- 需要勾选【显示所有类】里搜索---AIController

 

Enemy.h

Enemy.cpp

是肉体

AIEnemy.h

AIEnemy.cpp

是灵魂,用AI来控制

 

#include "Public/AIEnemy.h"

 

Enemy 脚本

继承自Character的类上有CapsuleComponent组件

只需要写控制样子的组件

 

Enemy.h

#include "Components/StaticMeshComponent.h"

UPROPERTY(VisibleAnywhere,Category=body)

UStaticMeshComponent* EnemyBody;

 

Enemy.cpp

#include "UObject/ConstructorHelpers.h"

 

AEnemey::AEnemy()

{

PrimaryActorTick.bCanEverTick = true;

EnemyBody=CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Body"));

 

static ConstructorHelpers::FObjectFinder<UStaticMesh> CylinderObj(TEXT("'/Game/StarterContent/Shapes/Shape_Cylinder'"));

 

if(CylinderObje.Succeeded())

{

EnemyBody->SetStaticMesh(CylinderObj.Object);

}

EnemyBody->SetRelativeScale3D(FVector(0.7f, 0.7f, 1.0f));

EnemyBody->SetupAttachment(RootComponent);

GetCapsuleComponent()->SetCapsuleRadius(40.0f);

GetCapsuleComponent()->SetCapsuleHalfHeight(50.0f);

}

 

// 使用GetCapsuleComponent,需要引入头文件:#include "Components/CapsuleComponent.h"

 

 

 

static ConstructorHelpers::FObjectFinder<UStaticMesh> CylinderObj(TEXT("'/Game/StarterContent/Shapes/Shape_Cylinder'"));

#include "Components/StaticMeshComponent.h"
public:	
	UPROPERTY(VisibleAnywhere,Category=Body)
	UStaticMeshComponent* EnemyBody;


#include "UObject/ConstructorHelpers.h"
#include "Components/CapsuleComponent.h"
AEnemy::AEnemy()
{
	// 显示组件
	EnemyBody = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Body"));
	// 创建样子
	// 找到对应的材质
	static ConstructorHelpers::FObjectFinder<UStaticMesh> CylinderObj(TEXT("'/Game/StarterContent/Shapes/Shape_Cylinder'"));
	// 成功找到就
	// Succeeded()需要加括号
	if (CylinderObj.Succeeded())
	{
		// 指定它的样子
		EnemyBody->SetStaticMesh(CylinderObj.Object);
	}
	// 设置它的大小
	EnemyBody->SetRelativeScale3D(FVector(0.7f, 0.7f, 1.0f));
	// 绑定到根组件上
	// AttachTo 过时了,换成:SetupAttachment
	EnemyBody->SetupAttachment(RootComponent);
	// 设置碰撞体的大小
	// 使用GetCapsuleComponent,需要引入头文件:#include "Components/CapsuleComponent.h"
	GetCapsuleComponent()->SetCapsuleRadius(40.0f);
	GetCapsuleComponent()->SetCapsuleHalfHeight(50.0f);
}

[展开全文]

授课教师

SIKI学院老师

课程特色

图文(1)
下载资料(1)
视频(30)