美文网首页
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