UE——从零开始

1.创建 空白  项目。

alt+p 是 执行play


按下end键 可以自动降落下来。

按下Alt键不放 可以复制


选择 菜单栏里的编辑(edit) ,选择项目设置(project setting)。有default Maps与default Modes

我们来创建一个自己的Mode(C++),选择菜单栏文件(File),新建c++类(Add to Project),选择GameMode类(如果只看到GameModeBase类,点开右上角的显示所有类,然后搜索GameMode类,发现它在GameModeBase类下)我建的为MypGameMode

将UE4下面的Games文件下的第一个设置为启动项,然后右键点击生成。

按下F5,用VS启动UE编辑器。

我们在MypGameMode.h中声明一个虚函数  :

class MYP_API AMypGameMode : public AGameMode
{
GENERATED_BODY()


virtual void BeginPlay() OVERRIDE;


};

不知道为什么一直编译有错,也无法生成,去掉OVERRIDE就好了。(最后发现是要小写才行)


紧接着我们要对它进行实现,在MypGameMode.cpp文件中:

void AMypGameMode::BeginPlay() 
{
if (GEngine)
GEngine->AddOnScreenDebugMessage(-1, 8.f, FColor::Red, TEXT("I'm using GameMode"));
//时间,颜色,文本
}

然后对它进行编译,然后用MypGameMode启动。发现打印了这句话。 到此HelloWorld成功。


创建一个Character类(继承它),然后进行实现(这次自动生成了BeginPlay等一系列方法),也打印一句话:

// Sets default values
AMypCharacter::AMypCharacter()
{
 	// Set this character to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

}

// Called when the game starts or when spawned
void AMypCharacter::BeginPlay()
{
	Super::BeginPlay();
	if (GEngine)
		GEngine->AddOnScreenDebugMessage(-1, 8.f, FColor::Red, TEXT("I'm user Character"));
	
}

// Called every frame
void AMypCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}

// Called to bind functionality to input
void AMypCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);

}
但是编译运行后发现并没有打印这句话,是因为我们没有在这个mode下要引用这个character。

我们在mode.cpp里面加入:

AMypGameMode::AMypGameMode(const class FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
{
DefaultPawnClass = AMypCharacter::StaticClass();
}

用这个方式,就要在mode.h里面声明为UCLASS:

UCLASS()
class MYP_API AMypGameMode : public AGameMode
{
GENERATED_UCLASS_BODY()




//AMypGameMode();


virtual void BeginPlay() override;


};

这是方式一。



或者将mode.cpp里面加入

AMypGameMode::AMypGameMode()
{
DefaultPawnClass = AMypCharacter::StaticClass();
}

然后在mode.h里面声明为:

UCLASS()
class MYP_API AMypGameMode : public AGameMode
{
GENERATED_BODY()

AMypGameMode();

virtual void BeginPlay() override;

};

这是方式二。


mode里面就加入了这个character,但是目前是无法移动的。


现在我们来对它进行移动以及视角旋转。

按照下面教程:https://docs.unrealengine.com/latest/CHN/Programming/Tutorials/FirstPersonShooter/2/3/index.html




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值