UE Gameplay 框架总结

2023-10-19 07:44
文章标签 总结 框架 ue gameplay

本文主要是介绍UE Gameplay 框架总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

各个模块

GameInstance(游戏实例

  •        实例里的数据不会随着关卡的切换而消失
  •        作用是为游戏保存临时的全局数据(并不是所有的全局变量都存在GameInstance中,如玩家的信息应该存在PlayerState,游戏的一些信息存在GameState),或者自定义需要在全局使用的逻辑(慎重,GameInstance 的臃肿会导致卡顿)。
  •         通常情况下一个Game中应该只有一个GameInstance(UE也是提供了多个GameInstance协同的扩展的,但是一次Game只能有一个GameInstance生效)
  •         GameInstance的生命周期就是从游戏进程启动到游戏进程结束
GameInstance主要处理:
  • UWorld、ULevel之间的切换
  • 全局配置
  • GameMode的切换

GameMode (游戏规则)

  • 仅在当前Level生效,一个Level一次只能对应一个GameMode,但是一个GameMode可以用在多个Level中
  • 仅存在服务器中,客户端没有
 GameMode主要处理: 
  • Class登记:记录GameMode中各种类的信息
  • Spawn:创建Pawn和PlayerController等
  • 游戏进度:游戏暂停重启的逻辑
  • 过场动画逻辑
  • 多人游戏的步调同步

DefaultPawn (默认Pawn)

  • 自带DefualtPawnMovement、CollisionComponent、StaticMeshCompnent三件套(Pawn没有这些,Pawn提供了接口没有具体实现)
  • 服务端和客户端都存在一份,同时保持同步。
  • 在 GameMode 中修改。
DefaultPawn主要处理:
  • 提供基础的操作,保证Game运行

HUD 

  • 实现一些简单的界面元素(文本,点),复杂的要使用UMG,但是HUD开销更小
  • 只存在于客户端

PlayerController 

  • 拥有 Pawn 并设置其行为规则
  • 服务器上拥有所有玩家的PlayerController,而本地客户端则只有当前玩家的 PlayerController 。
  • 关联了客户端和服务端,通过该类,客户端可以向服务端发送请求
 PlayerController 主要处理:
  • Camera管理
  • Input输入响应
  • UPlayer关联
  • HUD显示
  • Level切换
  • Voice音源监听

 GameState

  • 数据的全局管理(用于存储游戏相关数据)
  • 服务端和客户端都存在一份,它包含要复制到游戏中的每个客户端的信息
  • 通常用来保持数据的同步,也可将其中的部分数据设置为不同步。
  GameState主要处理:
  • 保存游戏数据,如任务进度,游戏活动等。

PlayerState 

  • 数据的全局管理(用于存储角色相关数据)
  • 该类需要通过 PlayerController 来访问
  • 所有玩家的 PlayerState存在于所有机器上(与 PlayerController 不同),并且可以将数据从服务器复制到客户端以保持同步
  • PlayerState的生命周期为一整个Level的生命周期
PlayerState 主要处理: 
  • 保存玩家数据,客户端可以存在多个PlayerState对象,不同的PlayerState保存不同玩家的状态

这篇关于UE Gameplay 框架总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/238361

相关文章

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio