UE4 GamePlay框架要点 - 基础对象

目录

UObject

Actor与组件

APawn&Acharacter

AController & APlayerState

APlayerController & AAIController

ULevel关卡 & UWorld

UGameMode & UGameState

UGameInstance

USaveGame

USubsystem

UDamage


  • UObject

    • UE一切对象的起点,提供反射、序列化等机制

  • Actor与组件

    • actor是最小可互动单位的抽象,可以派生出很多子类,是组件的容器

    • 组件是一种对通用能力的抽象,更偏向于引擎

    • 一种简单区别方法,跨关卡通用的封装成actor,可以跨游戏通用的封装成组件

    • Actor不一定可见,如AInfo继承自Actor,再派生出WorldSettings等Actor

  • APawn&Acharacter

    • 可被控制的肉体,不应包含输入操作

  • AController & APlayerState

    • AController肉体的灵魂,用于控制其他actor的一种actor,封装控制逻辑

    • APlayerState玩家肉体的状态,封装与玩家数据相关的获取和设置逻辑,抽离开是便于联机时同步到客户端

  • APlayerController & AAIController

    • APlayerController跟玩家沟通的渠道,控制逻辑独立于pawn,同一个APlayerController可以控制多个肉体

    • AAIController控制非玩家控制的pawn,使用行为树组织控制逻辑,使用黑板共享数据,使用EQS实现AI感知

  • ULevel关卡 & UWorld

    • ULevel: Actor的集合,World的板块,对应UMap

    • UWorld: ULevel的集合,运行时Actor真正的集合,关卡概念和游戏场景真正的对象

    • 不要在关卡蓝图写太多逻辑,关卡蓝图只是对场景中actor呈现方式的组织,如地编等工作

  • UGameMode & UGameState

    • UGameMode世界层级的规则和逻辑

    • UGameState世界层级的状态数据,可以同步到客户端

    • UGameState在游戏初始化时,通常用数据配置表来读取

  • UGameInstance

    • 游戏全局的实例,World外围管理对象

    • 主要实现跨关卡的逻辑

  • USaveGame

    • 游戏存档数据,用于玩家数据和世界数据的回滚(类似事务性)

    • 常和AGameState,APlayerState保持一致性,阶段性的保存数据到USaveGame,读档时拷贝数据回APlayerState更新玩家数据(背包,经验,血量等),拷贝回GameState更新世界状态(关卡场景中的actor状态等)

  • USubsystem

    • 游戏业务逻辑的组件(actor中的组件偏向引擎层面的通用能力,USubsystem直接封装业务逻辑)

    • 5个生命周期的粒度控制

    • 自动生成对象并托管生命周期

    • 替代Manager类

  • UDamage

    • Applay Damage

    • Event_AnyDamage

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ctrlturtle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值