UE4-GamePlay-Actor
发布日期:2021-06-29 12:04:37 浏览次数:2 分类:技术文章

本文共 1046 字,大约阅读时间需要 3 分钟。

目录

 


1、基础功能

 

2、使用说明

2.1 创建Actor

增加了Replication(网络复制),Spawn(生生死死),Tick(有了心跳)。

不要用NewObject或者new,而要用UWorld::SpawnActor()

AActor* pActor = GetWorld()->SpawnActor<AActor>(FVector::Zero, FRotator::ZeroRotator);

2.2 在Actor中创建组件

在UE4中,为Actor创建组件,可以使用UObject::CreateDefaultSubobject()模板函数,这个函数只能在构造函数中调用。如下所示:

//注意这里的组件名在同一个Actor中不能重复。

UMyActorComponent* pMyComponent = CreateDefaultSubobject<UMyActorComponent>(TEXT("MyComponent"));

2.3 Actor事件

AActor:拥有一系列事件,可在生命周期中进行调用:

  • BeginPlay - 对象首次出现在游戏进程中时调用
  • Tick - 每帧调用一次,在一段时间内执行操作
  • EndPlay - 对象离开游戏进程时

2.4 引入UE4 Actor Runtime Details可以支持动态修改Actor参数

3、Actor与ActorComponent之间的关联

3.1 一个Actor只有一个RootComponment根组件

3.2 Actor和Component关联常见操作:增(AddOwnedComponent)、删(RemoveOwnedComponent)、改、查(OwnsComponent)

3.3 Actor中通过维护下列三个数组来实现以空间换取事件

  • TArray<UActorComponent*> ReplicatedComponents;
  • TArray<UActorComponent*> BlueprintCreatedComponents;
  • TArray<UActorComponent*> InstanceComponents;

3.4 功能设计建议

是将功能代码放在Actor还是放在Component里然后挂在Actor上面?

应该根据要从

  • 代码量
  • 代码复用性

两个角度去考虑。需要复用的即使代码再少也应该放在Component中。代码量大则无论现阶段是否复用都放在一个独立的Component中。

 

 

 

 

 

 

转载地址:https://blog.csdn.net/zzZZ20150101/article/details/112240449 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:UE4-GamePlay-Component
下一篇:UE4-GamePlay-UObject

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月04日 23时56分21秒