美文网首页
UE4 Gameplay Framwork Related Cl

UE4 Gameplay Framwork Related Cl

作者: 珏_Gray | 来源:发表于2019-04-24 15:28 被阅读0次

这里我们来看Woopin的项目中UE基本gameplay框架的相关类:

  • GameInstance
  • GameState
  • PlayerState
  • PlayerController

MCGameInstance

MCGameStateBase

GameState类主要负责记录游戏的状态,同时存在于服务端和客户端。因此,与特定角色无关,游戏内通用的数据可以放在这里。

  • struct FAbilityTableRow


    这个结构体定义了新的DataTable表的行结构。

  • struct FAbilityData


    这个结构体存储了UI需要知道的关于Ability的数据。这里有两个properties,分别是Ability对应的类指针和图标纹理指针。
    备注: CDO = Class Default Object
  • AMCGameStateBase


    终于到GameStateBase类了,这里主要是实现了将DataTable中的数据异步载入。(实际代码中,作者用了同步加载。。。。。。)
    学到了一个字符串骚操作,利用printf动态生成字符串:
FString AMCGameStateBase::AbilityClassString = TEXT("BlueprintGeneratedClass'/Game/AbilitySystem/Blueprints/Abilities/GA_%s.GA_%s_C'"); //Name, Name
FString NewAbilityClassString = FString::Printf(*AbilityClassString, *ObjectRow->BaseName, *ObjectRow->BaseName);

备注:加载蓝图资源时,文件名要加后缀_C。关于资源加载可参考:
https://zhuanlan.zhihu.com/p/33303645
UE有一套资源管理系统,目前还没学习。

MCPlayerState

通常的RPG游戏中,一个玩家账户上可能会有多个角色,但同一时刻只能使用其中的一个角色。

  • 当玩家切换角色时,委托会激活。PlayerController可以切换Pawn。


  • 角色信息:角色名、等级、习得的技能、装备的技能


  • Gameplay System的AttributeSet和AbilitySystemComponent也放在了playerstate中。


MCPlayerController


在BeginPlay中,设置当前玩家使用的角色,并注册回调


BeginPlay

Controller改变角色时,需要更新角色信息。



Spawn角色并更新角色信息
UpdateCharacter

相关文章

网友评论

      本文标题:UE4 Gameplay Framwork Related Cl

      本文链接:https://www.haomeiwen.com/subject/cbbgiqtx.html