首页 > 其他分享 >UE5 Gameplay一些类的生命周期备忘

UE5 Gameplay一些类的生命周期备忘

时间:2024-03-05 11:45:53浏览次数:19  
标签:逻辑 生命周期 Level Server Replicate UE5 备忘 Gameplay

作为一个初学者,尽管能够在UE中能够使用蓝图和简单在C++中做一些逻辑更改,但对 Gameplay 框架的使用上还是一脸懵逼,比如:

  玩家的本地数据存在哪里?

  游戏的数据存在哪?

  如果我切换了关卡,放在哪的数据会丢?

  如果玩家死亡了,放在哪的数据会丢?

  如果我想要存储一个全局数据,那么这个数据应该放在哪个类中?GameInstance? GameState?

  NPC或者玩家的逻辑一股脑扔在Pawn或者Character中有没有问题?

  ......

 

  因为是做纯服务器出身,我更倾向代码的框架和逻辑,在这些东西没有搞清楚之前,每每完成一行代码时我都会心有余悸:即使测试和表现都看起来正常,这么写没问题吗?

  UE的对象管理貌似是每个对象都需要另一个对象管理的,这就形成了一个层级关系,因此每种对象生命周期就非常重要,毕竟我总不能在对象A的生命周期完成之后,依然尝试使用A的指针。

  最近在看Gameplay框架,涉及到几个关键并耳熟能详的类,在此做一些备忘。

  1. GameMode : 仅在 Server 中存在,设定了游戏的规则,更注重游戏的基本玩法逻辑。

   

  2. GameState : Server & Client 中都存在,生命周期随 Level,可 Replicate。游戏本身的数据——更注重数据而非逻辑。

  3. PlayerState : Server & Client 中都存在,生命周期随 Level,可 Replicate。玩家的数据。

  4. Controller : Server & Client 中都存在,生命周期随 Level,可 Replicate。操控 Pawn 的逻辑。

  5. GameInstance : Server & Client 中都存在各自独立的一份,生命周期在 Level 之上,不能 Replicate。适合放置Level之上的逻辑(即使Level切换也不会丢失的)。

  6. Subsystem : 使用简单,有 5 种 Subsystem 的基类可被继承,继承不同的基类使得 Subsystem 的生命周期不同:

    UEngineSubsystem,游戏/编辑器进程的开始到结束

    UEditorSubsystem,编辑器的开始到结束

    UGameInstanceSubsystem,游戏启动到结束

    UWorldSubsystem,主关卡(Persistent Level)切换后重建

    ULocalPlayerSubystem,随LocalPlayer的生命周期,数量可能 > 1

 

标签:逻辑,生命周期,Level,Server,Replicate,UE5,备忘,Gameplay
From: https://www.cnblogs.com/rkexy/p/18053562

相关文章

  • 备忘:npm 和 yarn 的常用源设置
    NPM: ###1、查看当前源:npmconfiggetregistry###2、恢复官方源:npmconfigsetregistryhttps://registry.npmjs.org###3、设置镜像源:npmconfigsetregistryhttps://registry.npmmirror.com###4、设置淘宝源:npmconfigsetregistryhttps://registry.npm.t......
  • UE5.3子弹命中效果
    根据命中的物理材质不同产生不同的粒子效果根据HitPhysMat节点得到表面物理材质getsurfacetype新建一个变量,并设置对象为映射类型,第一个参数为E_物理材质表面,第二个参数为粒子系统(对象引用)在编辑->项目设置->物理->PhysicalSurface,添加自己的物理材质名称。在内容浏......
  • UE5源码版本在多个工程来回切换时重复编译引擎问题
    细看UBT日志,已经给出了提示11>ParsingheadersforActionRPG11>RunningInternalUnrealHeaderToolD:\UEProject\ActionRPG\ActionRPG.uprojectD:\UEProject\ActionRPG\Intermediate\Build\Win64\ActionRPG\Development\ActionRPG.uhtmanifest-WarningsAsError......
  • UE5工具管理插件——UserToolBox
    视频链接:https://www.bilibili.com/video/BV1Vu4m1N75U/?spm_id_from=333.1007.tianma.41-3-161.click&vd_source=0b48a4de5d48210298dd8b91fa633329UserToolBoxUserToolBox是一个可以管理蓝图脚本和Python命令,python脚本的插件1启动插件2创建选项卡3修改选项卡的名字可......
  • react 备忘.md.18022871
    useStateuseState是React中一个基本的钩子(Hook),用于在函数组件中添加状态。这个钩子让你能够在不编写类组件的情况下保持组件的内部状态。useCallbackuseCallback是React的一个钩子(Hook),它返回一个记忆化(memoized)的回调函数。这个钩子在某些场景下非常有用,特别是当你需要传......
  • Go备忘录
    Golang备忘清单该备忘单提供了帮助您使用Golang的基本语法和方法。入门hello.gopackagemainimport"fmt"funcmain(){fmt.Println("Hello,world!")}直接运行$gorunhello.goHello,world!或者在Gorepl中尝试一,go命令参考变量vars1strings1="......
  • 备忘录模式
    备忘录模式-MementoPattern别名:快照模式-SnapshopPattern或令牌模式-TokenPattern是什么?是指在不破坏封装的前提下,捕获一个对象的内部状态,并且在对象之外保存这个状态,这样我们就可以在需要的时候将该对象恢复到原先保存的状态了。可以做什么?可以提供一种“后悔药”......
  • Kubernetes常用命令备忘录
    本文主要整理了Kubernetes常用命令,给朋友们一个备忘录。查看K8S的帮助命令kubectl--help切换被操作的集群默认情况下会在.kube目录下的config文件里的证书去操作K8S集群。如果碰到需要切换访问别的K8S集群的场景,可以使用kubectl--kubeconfigxxxxxx去指定某个证书文件,比如......
  • OOM内存泄露速查备忘录
    本文整理了一份OOM内存泄露问题速查备忘录,详细见下文。1、核心步骤top、free、df三连,查看CPU、内存、磁盘的大致情况。netstat-lp查看端口占用情况。导出内存dump文件:#保存了堆内存现场jmap-dump:format=b,file=heap.dumppid#强制保存了堆内存现场jmap-F-dump:......
  • Docker小知识备忘录
    本文整理了一些Docker基础知识和常用命令,方便朋友们查阅。同时也感谢Docker这个划时代的产品,它解决了环境一致性的问题,让交付和迁移更轻松。1、Docker与虚拟化1.1、虚拟化技术虚拟化技术分为两大类,全虚拟化和半虚拟化。全虚拟化比如之前我们使用的虚拟机就是全虚拟化,这种......