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

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

价格 免费

 

计时器的功能

当敌人处在易受到攻击的时候

不会一直处在易受攻击的状态

过了10秒之后返回正常的状态

这个时候需要10秒的计时

private:
	FTimerHandle TimeVulnerable;
	// 定义一个变量来判断当前的状态
	bool bIsVulnerable;
#include "Public/TimerManager.h"
#include "GameFramework/CharacterMovementComponent.h"
void AEnemy::SetVulnerable()
{
	// 吃到豆子可以增加10
	// 过一段时间可以不受攻击
	// 使用GetWorldTimerManager(),需要引入头文件:#include "Public/TimerManager.h"
	// 第一个参数是TimeVulnerable;第二个参数:作用在哪个类;第三个参数:作用于哪个函数;第四个参数:时间间隔;第五个参数:是否循环
	GetWorldTimerManager().SetTimer(TimeVulnerable, this, &AEnemy::SetInVulnerable, 10.0f, false);

	if (bIsVulnerable)
	{
		return;
	}
	bIsVulnerable = true;
	// 连续吃到豆子,敌人当前的状态已经设置成了易受攻击的状态
	// 没必要执行 EnemyBody->SetMaterial(0, VulnerableMaterial);
	// 定义一个变量来判断当前的状态,已经是易受到攻击的状态,没必要设置材质了
	// 时间段可以从10秒变成20秒外,剩下的都不需要再改变了
	EnemyBody->SetMaterial(0, VulnerableMaterial);

	// 使用GetCharacterMovement(),需要引入的头文件:#include "GameFramework/CharacterMovementComponent.h"
	GetCharacterMovement()->MaxWalkSpeed = 50.0f;
}
void AEnemy::SetInVulnerable()
{
	GetWorldTimerManager().ClearTimer(TimeVulnerable);
	bIsVulnerable = false;
	EnemyBody->SetMaterial(0, DefaultMaterial);
	GetCharacterMovement()->MaxWalkSpeed = 150.0f;
}

// 使用GetWorldTimerManager(),需要引入头文件:#include "Public/TimerManager.h"

// 使用GetCharacterMovement(),需要引入的头文件:#include "GameFramework/CharacterMovementComponent.h"

[展开全文]

授课教师

SIKI学院老师

课程特色

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

学员动态