03-虚幻引擎蓝图类的各父类作用讲解

虚幻引擎(Unreal Engine)的蓝图系统提供了多种父类,每种父类都有其特定的用途和生命周期。理解这些父类的作用,是高效使用蓝图开发游戏的基础。以下是虚幻引擎中常见蓝图父类的详细讲解:


1. Actor

  • 作用:所有可以放入关卡(Level)中的对象的基类,包括静态网格、灯光、摄像机等。
  • 特点
    • 可放置:可直接从内容浏览器拖拽到关卡中。
    • 生命周期:由关卡管理,随关卡的加载/卸载而创建/销毁。
    • 组件化 :通过添加组件(如StaticMeshComponentCameraComponent)实现功能。
  • 常见用途:场景中的门、开关、可破坏物体、NPC等。

2. Pawn

  • 作用:所有可控制的实体的基类(包括玩家和AI),代表"棋子"。
  • 特点
    • 可被Controller控制 :通过PossessUnpossessPlayerControllerAIController绑定。
    • 物理交互 :支持移动组件(如FloatingMovementComponentCharacterMovementComponent)。
  • 常见用途:车辆、飞行单位、自定义AI角色(非人形)。

3. Character

  • 作用 :人形角色的专用类,继承自Pawn,内置角色移动组件(CharacterMovementComponent)
  • 特点
    • 人形移动:支持行走、跳跃、游泳、攀爬等复杂移动模式。
    • 碰撞胶囊体 :默认带有CapsuleComponentSkeletalMeshComponent
    • 网络同步:优化了多人游戏的移动同步。
  • 常见用途:玩家角色、NPC敌人、队友等。

4. PlayerController

  • 作用玩家输入与Pawn之间的桥梁,处理玩家的输入、UI交互和相机管理。
  • 特点
    • 控制Pawn :通过Possess控制一个PawnCharacter
    • 输入响应:接收键盘、鼠标、手柄输入并转发给控制的Pawn。
    • UI交互:管理HUD和UMG用户界面。
  • 常见用途:玩家的"灵魂",即使角色死亡,PlayerController依然存在(可重生角色)。

5. AIController

  • 作用:AI的"大脑",控制AI行为(如寻路、决策)。
  • 特点
    • 行为树 :通过Behavior TreeBlackboard实现复杂AI逻辑。
    • 感知系统 :支持视觉、听觉等AI感知(AI Perception Component)。
  • 常见用途:敌人AI、NPC、宠物等。

6. GameMode

  • 作用定义游戏规则(如胜利条件、角色生成、关卡切换)。
  • 特点
    • 服务器权威:仅在服务器存在(多人游戏中客户端无GameMode)。
    • 全局管理 :控制玩家出生点(PlayerStart)、角色生成类(Default Pawn Class)。
  • 常见用途:射击游戏的团队规则、大逃杀的缩圈机制、RPG的任务系统。

7. GameState

  • 作用同步游戏状态给所有客户端(如得分、时间、玩家列表)。
  • 特点
    • 网络同步:自动复制数据到所有连接的客户端。
    • 全局访问 :通过GetGameState在任何地方获取。
  • 常见用途:多人游戏的实时分数、比赛剩余时间、玩家状态列表。

8. PlayerState

  • 作用单个玩家的状态数据 ,与PlayerController关联。
  • 特点
    • 网络同步:如玩家名称、得分、Ping值。
    • 持久存在:即使角色死亡,PlayerState仍保留(直到玩家离开游戏)。
  • 常见用途:排行榜、玩家击杀数、自定义玩家属性。

9. HUD & UserWidget

  • HUD(已过时)
    • 旧版2D界面系统,现已被UMG(UserWidget)取代。
  • UserWidget(UMG)
    • 作用:创建UI元素(按钮、血条、菜单)。
    • 特点 :支持蓝图可视化设计,可绑定到PlayerController
    • 常见用途:游戏主菜单、背包界面、技能冷却显示。

10. GameInstance

  • 作用跨关卡的全局管理器,生命周期贯穿整个游戏会话。
  • 特点
    • 持久存在:从游戏启动到退出始终存在。
    • 跨关卡数据:保存全局设置、玩家档案、DLC管理。
  • 常见用途:语言设置、成就系统、在线会话管理。

11. Level Blueprint

  • 作用关卡的专属蓝图,直接操作关卡中的Actor和事件。
  • 特点
    • 关卡独有:每个关卡(Level)有一个独立的Level Blueprint。
    • 事件驱动:处理关卡特定事件(如关卡加载、触发器激活)。
  • 常见用途:过场动画、关卡切换逻辑、Boss战触发。

12. Subsystem

  • 作用轻量级全局管理器,按模块自动生命周期管理。
  • 特点
    • 无需手动创建 :通过UGameInstanceSubsystemUEditorSubsystem等自动实例化。
    • 模块化:避免GameInstance过度膨胀。
  • 常见用途:成就系统、在线商店、Mod管理。

总结表格

父类 核心作用 生命周期 典型用例
Actor 场景中的基础对象 随关卡加载/卸载 门、开关、道具
Pawn 可控制的实体 随生成/销毁 车辆、无人机
Character 人形角色 随生成/销毁 玩家、NPC敌人
PlayerController 玩家输入与Pawn的桥梁 玩家连接时创建,断开时销毁 玩家控制、UI交互
AIController AI的大脑 随AI生成/销毁 敌人AI、宠物
GameMode 游戏规则 服务器关卡存在时 胜利条件、角色生成
GameState 同步全局游戏状态 随关卡存在 多人游戏得分、时间
PlayerState 单个玩家的状态 玩家连接时创建 玩家名称、得分
UserWidget UI界面 手动创建/销毁 菜单、血条、技能栏
GameInstance 跨关卡全局数据 游戏启动到退出 语言设置、DLC管理
Level Blueprint 关卡专属逻辑 随关卡存在 过场动画、Boss战触发
Subsystem 模块化全局管理器 按模块自动管理 成就系统、在线商店

选择父类的原则

  1. 场景对象Actor
  2. 可控制角色Pawn/Character(人形用Character)。
  3. 玩家输入PlayerController(非角色逻辑)。
  4. AI逻辑AIController + 行为树
  5. 游戏规则GameMode (服务器)+ GameState(同步)。
  6. 跨关卡数据GameInstanceSubsystem

理解这些父类的边界和协作方式,可以避免架构混乱(如将玩家输入逻辑误写到Character中)。

(PS:该系列文章为笔者学习UE过程中所遇问题的AI解答,仅作参考)

相关推荐
小李也疯狂1 天前
Unity 中的立方体贴图(Cubemaps)
unity·游戏引擎·贴图·cubemap
呆呆敲代码的小Y1 天前
【Unity工具篇】| 超实用工具LuBan,快速上手使用
游戏·unity·游戏引擎·unity插件·luban·免费游戏·游戏配置表
EQ-雪梨蛋花汤1 天前
【Unity优化】Unity多场景加载优化与资源释放完整指南:解决Additive加载卡顿、预热、卸载与内存释放问题
unity·游戏引擎
我的offer在哪里1 天前
用 Unity 从 0 做一个「可以玩的」游戏,需要哪些步骤和流程
游戏·unity·游戏引擎
泡泡茶壶ᐇ1 天前
Unity游戏开发入门指南:从零开始理解游戏引擎核心概念
unity·游戏引擎
Var_al1 天前
抖小Unity WebGL分包命令行工具实践指南
unity·游戏引擎·webgl
天人合一peng1 天前
unity 通过代码修改button及其名字字体的属性
unity·游戏引擎
GLDbalala1 天前
Unity基于自定义管线实现经典经验光照模型
unity·游戏引擎
心疼你的一切1 天前
Unity异步编程神器:Unitask库深度解析(功能+实战案例+API全指南)
深度学习·unity·c#·游戏引擎·unitask
呆呆敲代码的小Y1 天前
【Unity 实用工具篇】 | Book Page Curl 快速实现翻书效果
游戏·unity·游戏引擎·u3d·免费游戏·翻书插件