当前位置: 首页 > news >正文

佛山网站设计多少钱广州专做优化的科技公司

佛山网站设计多少钱,广州专做优化的科技公司,拍卖网站建设,做影视免费网站违法吗官方文档:虚幻引擎中的Gameplay定时器 | 虚幻引擎 5.5 文档 | Epic Developer Community | Epic Developer Community 定时器 安排在经过一定延迟或一段时间结束后要执行的操作。例如,您可能希望玩家在获取某个能力提升道具后变得无懈可击,…

官方文档:虚幻引擎中的Gameplay定时器 | 虚幻引擎 5.5 文档 | Epic Developer Community | Epic Developer Community

 定时器 

安排在经过一定延迟或一段时间结束后要执行的操作。例如,您可能希望玩家在获取某个能力提升道具后变得无懈可击,然后10秒钟后恢复可受伤害状态。又或者,您可能希望玩家在穿过一间充满毒气的房间时,每秒受到一次伤害。这些操作都可以使用定时器来实现。

注意:定时器消耗比较大,可用虚幻自带的GAS框架进行大消耗的更新等操作。 

基础写法

先创建一个继承于Actor的类命名为TimerActor。

在头文件添加代码:

public://此函数具有重复调用作用void RepeatingFunction();protected://定义一个定时器FTimerHandle MyTimerHandle;//定时3秒int32 RepeatingCallsRemaining = 3;

在源文件添加代码:

void ATimerActor::BeginPlay()
{Super::BeginPlay();//拿到时间管理器FTimerManager& ThisTimerManager = GetWorldTimerManager();ThisTimerManager.SetTimer(MyTimerHandle, this, &ATimerActor::RepeatingFunction, 1.0f, true, 2.0f);
}void ATimerActor::RepeatingFunction()
{// 调用该函数达到足够次数后,清空定时器。if (--RepeatingCallsRemaining <= 0)//此写法为先减在判断{GetWorldTimerManager().ClearTimer(MyTimerHandle);//在输出日志去查看效果UE_LOG(LogTemp, Warning, TEXT("Timer End!"));}// 在此进行一些操作...
}

在Output Log中经过3秒显示自定义日志。 

引擎源码片段:

SetTimer()

ClearTimer()

 进阶写法

先创建一个继承于Actor的类命名为TimerActor。

在头文件添加代码:

public://渲染组件,将定时器显示在场景中class UTextRenderComponent* CountdownText;protected:void AdvanceTimer();void UpdataTimerDisplay();//此宏可将其在蓝图进行调用UFUNCTION(BlueprintNativeEvent)void CountdownHasFinshed();protected://可在编辑器进行修改UPROPERTY(EditAnywhere)int32 CountdownTime;FTimerHandle CountdownTimerHandle;

在基于此类创建的蓝图子类中:

在源文件添加代码:

//先添加头文件,以调用组件
#include"Components/TextRenderComponent.h"

先在默认构造函数中进行初始定义:

ALearnCountDownActor::ALearnCountDownActor()
{// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.PrimaryActorTick.bCanEverTick = false;CountdownText = CreateDefaultSubobject<UTextRenderComponent>(TEXT("CountdownNumber"));//可在蓝图组件处查看到名称CountdownText->SetHorizontalAlignment(EHTA_Center);//设置水平对齐CountdownText->SetWorldSize(150.0f);RootComponent = CountdownText;CountdownTime = 3;
}

 

void ALearnCountDownActor::UpdataTimerDisplay()
{CountdownText->SetText(FText::FromString(FString::FromInt(FMath::Max(CountdownTime,0))));//此处类型转换
}//_Implementation表明原生实现
void ALearnCountDownActor::CountdownHasFinshed_Implementation()
{//改为特殊读出CountdownText->SetText(FText::FromString(TEXT("Finsh!")));
}void ALearnCountDownActor::AdvanceTimer()
{--CountdownTime;//此处类似递归UpdataTimerDisplay();if (CountdownTime < 1){//倒数完成,停止运行定时器GetWorldTimerManager().ClearTimer(CountdownTimerHandle);CountdownHasFinshed();//出口}
}void ALearnCountDownActor::BeginPlay()
{Super::BeginPlay();//先更新UpdataTimerDisplay();GetWorldTimerManager().SetTimer(CountdownTimerHandle, this, &ALearnCountDownActor::AdvanceTimer, 1.0f, true);
}

思路: 先进行初始化,用FMath::Max取最大值返回数值从而更新,在AdvanceTimer函数中运用类似递归思想进行循环并结束,上述做法单独为一个函数,将其返回的参数在BeginPlay()中用GetWorldTimerManager().SetTimer进行处理。

http://www.yayakq.cn/news/130402/

相关文章:

  • wordpress多站点多模板建设银行网站注册
  • 百度搜索网站提交网站建设中最重要的
  • 家具网站设计方案个人域名注册需要哪些条件
  • 企业建站程序有哪些脉脉用的什么技术做网站
  • 怎么让别人做网站推广网站名是什么
  • 网站开发技术 下载信誉好的购物网站
  • ae模板免费下载网站有哪些中铁建设门户网站
  • 深圳网站制作网站建设wordpress victheme
  • 在谷歌上做国际网站河北省承德市建设局网站上不去
  • 网站建设销售工资东莞网站设计实力
  • 网站开发技术服务费合同范本外贸自建站平台怎么找
  • 建设一个网站的设备有什么免费推广软件
  • 学前端要逛那些网站会计培训
  • 电影网站建设的核心是怎么做购物型网站
  • 移动电商网站设计wordpress loading
  • 达州高端网站建设微信公众平台注册要钱吗
  • 各大网站有哪些网站设计公司长沙
  • 淮北哪里做网站广南网站建设
  • 工程建设官方网站吉林长春有做网站的吗
  • 做性的网站有哪些轮播网站
  • 网站建设与管理课程的目标短视频剪辑在哪里学
  • 如何建立微网站网站无法连接到服务器
  • 西安网络推广运营公司长沙的seo网络公司
  • 电子政务 和网站建设总结电子商务网站建设讨论
  • 多个端口网站如何做域名重定向wordpress导入 ftp
  • 外贸公司网站改版思路wordpress前台登录按钮
  • 网站开发需要的所有技术洛阳网站建设内容
  • 站长之家psd素材互联网之光博览会
  • 专业做棋牌网站的织梦iis7搭建网站教程
  • 松原做招聘的网站有哪些国防教育网站建设方案