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解答,仅作参考)

相关推荐
一个笔记本10 小时前
godot log | 修改main scene
游戏引擎·godot
nnsix11 小时前
Unity PicoVR开发 实时预览Unity场景 在Pico设备中(串流)
unity·游戏引擎
一只一只17 小时前
Unity之UGUI Button按钮组件详细使用教程
unity·游戏引擎·ugui·button·ugui button
神米米19 小时前
Maya快速安装UE4 布料权重绘制插件PhysX导出apx
游戏引擎·ue4·maya
WarPigs20 小时前
Unity阴影
unity·游戏引擎
一只一只21 小时前
Unity之Invoke
unity·游戏引擎·invoke
技术小甜甜1 天前
【Godot】【入门】信号系统从 0 到 1(UI/玩法彻底解耦的通用写法)
ui·游戏引擎·godot
技术小甜甜1 天前
【Godot】【入门】节点生命周期怎么用(避免帧循环乱写导致卡顿的范式)
游戏引擎·godot
tealcwu1 天前
【Unity踩坑】Simulate Touch Input From Mouse or Pen 导致检测不到鼠标点击和滚轮
unity·计算机外设·游戏引擎
ThreePointsHeat1 天前
Unity WebGL打包后启动方法,部署本地服务器
unity·游戏引擎·webgl