1. 安装虚幻引擎
- 下载和安装Epic Games。下载虚幻引擎 - Unreal Engine
- 登录Epic Games
- 安装虚幻引擎,选择对应版本
2. UE编辑器界面概述

2.1工具栏
📍 位置:界面顶部
主要功能
- 保存当前关卡
- 编译蓝图/C++
- 播放(Play)
- PIE(Play In Editor)
- 模拟(Simulate)-
- 构建
- 构建光照
- 构建导航
- 平台打包
- Windows
- Android
- IOS等
官方参考:
🔗 编辑器界面概述
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/unreal-editor-interface
🔗 构建和打包项目
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/packaging-projects-in-unreal-engine
2.2 视口区域
📍 位置:编辑器中央(核心区域)
视口是 3D 实时编辑窗口,用于:
- 查看场景
- 操作 Actor
- 调整摄像机
- 调整光照与可视模式
常用快捷键
- 右键 + WASD:移动视角
- W / E / R:移动 / 旋转 / 缩放
- Alt + 鼠标:旋转观察
官方文档:
🔗 显示选项
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/viewport-show-flags-in-unreal-engine
2.3 世界大纲
📍 位置:右上区域
列出当前关卡中的所有 Actor。
功能包括:
- 搜索 Actor
- 分组
- 查看层级结构
- 快速选中对象
官方文档:
🔗世界大纲
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/outliner-in-unreal-engine
2.4 细节面板
📍 位置:右侧下方
当选中一个 Actor 时,这里显示:
- 位置(Location)
- 旋转(Rotation)
- 缩放(Scale)
- 材质
- 碰撞
- 组件属性

官方文档:
2.5 内容浏览器
📍 位置:底部
用于管理项目资源:
- 材质(Materials)
- 静态网格(Static Mesh)
- 蓝图(Blueprint)
- 动画
- 贴图
- 音效
查找资产:
- 文本过滤器:在搜索资产(Search Assets)框中,键入文本以按名称(Name)、路径(Path)、标签(Tags)或类型(Type)查找资产。可以通过在搜索标记前面加上““来从搜索中排除资产
- 扩展过滤器:单击过滤器(Fiters)按钮以按资产类型和其他条件进行过滤。
使用技巧:
可以在顶部菜单栏中的**窗口(Window)**菜单打开,可以同时打开最多四个内容浏览器实例。例如,如果要执行以下操作,这很有用:
- 在不同的内容浏览器(Content Browser)中筛选不同的资产类型,例如一个只显示静态网格体,另一个只显示材质。
- 在项目的不同文件夹之间迁移资产。
默认情况下, 内容浏览器(Content Browser) 停放在虚幻编辑器(Unreal Editor)窗口的底部。可以点击并拖动,将其重新停靠在编辑器中的任何位置,或使其成为浮动窗口。还可以右键点击内容浏览器(Content Browser)选项卡,并选择 移至侧边栏(Move to Sidebar) ,这样内容浏览器(Content Browser)会折叠到虚幻编辑器(Unreal Editor)窗口左侧边栏中的可点击选项卡。
官方文档:
🔗 内容浏览器
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/content-browser-in-unreal-engine
3.UE的基础概念
3.1 资产(Assets):
在 UE 中,资产(Assets) 指的是项目中使用的所有资源文件,例如:
- 模型
- 材质
- 纹理
- 音频
- 动画
- 蓝图
TIP👉 只有位于
Content目录下的资源才会被 UE 识别为资产。
常见资产格式:
| 类型 | 示例 |
|---|---|
| UE资产 | .uasset(这是最常见的资产文件格式,包含各种类型的资产,如模型、材质、蓝图等。)、.umap |
| 纹理 | .png、.jpg |
| 音频 | .wav、.mp3 |
| 模型/动画 | .fbx |
这些原始文件导入后会转换为 .uasset,才真正成为引擎可用资源,可以理解为:
资产 = 游戏世界的原材料
3.2 世界(World):
NOTE世界的特点
- 可以包含多个关卡,每个关卡代表了特定的场景或环境,开发者可以在这些关卡中放置对象、设置光照和定义游戏逻辑
- 支持动态加载与卸载(优化性能),例如,在一个大的开放世界游戏中,玩家可能只需加载当前区域的关卡,而其他区域则保持未加载状态
- 整个世界有其全局设置,如重力、时间等,而每个关卡可以有自己的特定设置。这使开发者能够在同一世界中创建多样化的体验。
- 支持资源共享,开发者可以在不同的关卡中使用相同的资产和资源,从而提高效率和一致性
在 UE 中,World 代表游戏运行的整体环境,包括:
- 多个关卡
- 光照系统
- 地形
- 场景对象
- 全局物理规则(如重力)
世界提供统一规则,而具体内容由关卡组成,开发者创建多个世界,以支持不同的关卡或场景,并通过加载和卸载这些世界来管理游戏内容
3.3关卡(Level):
关卡可以理解为:
玩家实际游玩的场景空间
它本质上是 Actor 的容器,所有游戏对象都存在于关卡中。
关卡可以:
- 小到测试房间
- 大到开放世界地图
常见关卡元素:
- 静态网格体(Static Mesh):是用于表示不需要动态变化的三维模型的资源,静态网格体通常用于构建游戏中的环境、道具和其他物体。比如家具、武器、车辆,建筑物、地面、树木、岩石等
- Volume(触发区域):一种特殊类型的Actor,用于定义特定的区域或空间,并可以影响该区域内的游戏逻辑和行为。比如 进入某Volume区域,可以开关门、播放音效等,在某些区域可以飞行等
- 光源(Light): 控制场景照明,通过模拟光线行为,影响物体的外观
- 蓝图(Blueprint):是一种可视化脚本系统,用于创建游戏逻辑和交互行为。比如实现开关门的逻辑。
3.4 Actor:
在 UE 中:
几乎所有可以放置在场景中的对象都是 Actor
Actor 是关卡中对象的基础单位
常见 Actor 类型
- Character(角色):专门用于表示可以被玩家或AI控制的对象,角色通常用于创建游戏中的主要人物或者NPC
- Camera(摄像机):捕捉和现实游戏场景的对象,决定了玩家看到的画面
- Light(光源):同**关卡(Level)**中的描述
- Static Mesh Actor(静态网格体):同**关卡(Level)**中的描述
- Blueprint Actor(可编程对象):同**关卡(Level)**中的描述
- PlayerController(玩家控制逻辑):负责接收玩家输入(如键盘、鼠标、手柄)并将这些输入转换为游戏中的逻辑(如移动、攻击等)
3.5 组件(Component):
如果说 Actor 是实体,
那么 组件(Component) 就是赋予它能力的模块。
组件可以为 Actor 添加:
- 渲染能力
- 碰撞检测
- 音效播放
- 摄像机视角
- 物理行为
TIP
- 组件可以在多个Actor中重复使用,使得对象构建更加模块化与可复用
- 组件可以在蓝图中创建和配置,使得非程序员也能轻松使用和管理它们
- 一个 Actor 可以包含多个组件,这些组件可以相互协作,共同实现复杂的行为
自动门(Auto Door)的组件协作示例
假设制作一扇自动感应门,当玩家靠近时:
- 门自动打开
- 播放开门声音
- 播放开门动画
- 防止穿模
这个简单功能,由以下多个组件协同完成:
碰撞组件(Collision Component)
作用:检测玩家是否靠近
创建触发区域(Box Collision)
当玩家进入范围时触发事件
当玩家离开时关闭门
静态网格组件(Static Mesh Component)
作用:显示门模型
门的外观
门框结构
动画 /时间轴组件(Timeline / Animation)
作用:控制门的开关动画
控制门的旋转或滑动
平滑打开与关闭
提升真实感
音频组件(Audio Component)
作用:播放开门声音
播放开门音效
播放关门音效
在蓝图中,将这些组件添加到门这个Actor中,当感应到玩家时,碰撞组件检测到玩家进入;触发蓝图事件;时间轴播放 → 门缓慢打开;音频组件播放开门声音
3.6 蓝图(Blueprint):
蓝图是 UE 的可视化脚本系统,允许开发者通过节点连接实现逻辑功能,而无需编写传统代码
常见用途:
- 角色行为逻辑
- 场景事件触发
- UI交互
- 游戏规则实现
常见蓝图类型
- Level Blueprint(关卡逻辑)
- Actor Blueprint(对象逻辑)
- Character Blueprint(角色行为)
- Widget Blueprint(UI界面)
3.7 配置表(Data Table):
配置表(Data Table) 是一种用于存储和管理结构化数据的工具。它允许开发者将数据以表格形式组织,便于读取、编辑和维护。
主要作用:
-
管理结构化数据,例如:
- 角色属性
- 物品信息
- 数值平衡
- 关卡配置
-
动态加载配置表中的数据,支持根据不同条件(等级、难度等)调整不同的游戏行为
-
蓝图与C++均可访问
配置表结构定义
- 蓝图结构体
- C++结构体
- CSV文件(导入时指定数据类型和字段映射)
- JSON文件
- XML文件
3.8 材质材质与光照:
材质(Materials)
材质决定物体如何与光线交互,从而影响其颜色、纹理、反射、透明度等视觉效果
基本组成:
- Base Color:基础颜色
- Metallic:控制表面金属效果
- Roughness:表面光滑程度
- Normal Map:细节和深度
光照(Lighting)
UE 提供多种光源类型:
- Directional Light(太阳光)
- Point Light(点光源)
- Spot Light(聚光灯)
- Sky Light(环境光)
良好的光照设计能显著提升画面质量
3.9 动画(Animation):
动画让静态模型产生动态表现,例如:
- 角色行走与攻击
- 门的开关
- 布料与水面模拟
部分动画类型:
- 物体动画(Object Animation):用于控制非角色对象的运动,如门的开关、物品的移动等
- 骨骼动画(Skeletal Animation):通过骨骼系统驱动角色模型,使其能够进行复杂的动作。如行走、跑步、跳跃等
- 混合空间动画(Blend Space Animation):允许开发者创建多个动画之间的平滑过渡,例如在行走和奔跑之间平滑过渡。可以根据输入参数动态调整动画
- 动画蓝图(Animation Blueprint):用于管理和控制角色的动画状态和过渡,通过可视化脚本系统实现复杂的动画逻辑
3.10状态机(State Machine):
状态机是一种用于管理对象 不同状态及其切换规则 的系统。它允许开发者定义不同的动画状态(如行走、跑步、跳跃等)以及这些状态之间的过渡逻辑;状态机由多个“状态”组成,每个状态对应一个特定的动画或者行为;状态之间通过“条件转换(如输入、事件或变量值)”进行切换。
例子:
状态机:红绿灯
状态:
- 红灯
- 绿灯
- 黄灯
条件:每60s切换一次灯的颜色
核心思想:
对象在任意时刻只处于一种状态, 并根据条件在不同状态之间切换。
3.11 AI
UE 的 AI 系统通常由三部分组成:
- Blackboard
Blackboard 是 AI 的“记忆系统”。用于存储:
- 目标位置
- 是否看到玩家
- 当前状态
- 巡逻点
- 攻击目标
行为树通过黑板读取信息做决策。
- EQS
EQS 用于环境查询与位置选择
AI 用它寻找最佳位置
例如:
- 找最近掩体
- 找安全位置
- 找最佳射击点
- 找可行走区域
- Behavior Tree
行为树用于定义 AI 的决策逻辑。
决定 AI 下一步该做什么
例如:
是否看到玩家? 是 → 追击 否 → 巡逻三者结合可以实现复杂且智能的 AI 行为。
3.12 网络模式
在多人游戏中,UE 使用 Replication(数据复制) 在客户端与服务器之间同步数据。

独立模式
图1:UE编辑器界面结构

客户端-服务端模式
单机(Standalone):
- 有一个或多个本地玩家且没有联网的游戏。仍被视为服务器,因为它包含所有服务器功能,但不接受来自远程客户端的连接。此模式用于单人和本地多人游戏。此模式可根据需要同时运行服务器端和客户端逻辑。
- 常见场景:
- 单人游戏:如角色扮演类、冒险类游戏,玩家在本地体验故事和任务
- 本地多人游戏:如分屏合作或对战游戏,多个玩家在同一机器上进行游戏
客户端(Client):
- 作为联网多人游戏会话中与服务器连接的客户端运行,不运行服务器的逻辑
- 常见场景:
- 在线多人游戏:MMORPG、FPS等,玩家通过客户端连接到专用服务器进行交互
- 实时数据交换的场景
监听服务器(ListenServer):
- 此服务器也有一个本地玩家,此玩家负责托管游戏。可供网络上的其他玩家链接。此模式常用于临时合作和竞技多人游戏。
- 常见场景:
- 临时合作类模式:如局域网多人游戏模式
- 监听已有的游戏副本小范围游玩
- 由于托管监听服务器的玩家是直接在服务器上玩游戏,因此相对于作为客户端在监听服务器上玩游戏的玩家来说,他们更有优势。这可能引发游戏公平性的问题。
专用服务器(DedicatedServer)
- 没有本地玩家的服务器。服务器仅接受来自远程客户端的连接,因此为了更高效地运行,服务器放弃了图形、声音、输入和其他面向玩家的功能。此模式常用于需要更持久、安全或大规模多玩家的游戏。
- 常见场景:
- 大型在线多人游戏:需要处理大量并发用户并保持稳定性的环境
- 游戏赛事:稳定与安全的环境
4. 项目结构:
UE 项目包含几个关键目录:
Config 项目配置文件。
Content 所有游戏资源。
Intermediate 构建中间文件。
Saved 日志与自动保存数据。
.uproject 项目入口与模块配置。
5.使用 Unreal Engine 构建第三人称联网射击游戏:实现思路概览
-
项目初始化与网络准备
-
首先创建项目:
- 启动 Unreal Engine
- 选择 Games → Third Person 模板
- 确认项目支持网络功能
第三人称模板已经包含:
✔ 基础角色移动 ✔ 摄像机系统 ✔ 输入绑定
-
-
角色与控制
-
角色蓝图:
-
基于默认角色蓝图,可以扩展:
- 射击功能
- 重装逻辑
- 受伤与生命系统
在多人游戏中,需要特别注意:
关键变量必须支持网络同步(Replication) 否则客户端状态会不一致
-
-
自定义玩家控制器:
- 处理输入逻辑
- 管理玩家状态
- 控制摄像机行为
-
-
武器系统
- 武器蓝图:
- 射击逻辑
- 弹药管理
- 换弹机制
- 射击特效与音效
在联网环境中:
👉 客户端触发射击 👉 服务器验证并执行 👉 使用 RPC 同步结果
- 武器蓝图:
-
关卡与战斗环境设计
-
创建关卡:
-
地形工具构建场景
-
静态网格体搭建建筑结构
-
掩体与障碍设计战术空间
-
- 专用服务器(Dedicated Server)部署
-
确保游戏模式支持服务器运行
-
构建 Dedicated Server 版本
-
生成服务器可执行程序
- 网络逻辑与同步策略
多人游戏开发的核心原则:
✔ 游戏规则在服务器执行 ✔ 客户端负责输入与显示 ✔ 关键状态通过复制同步
需要实现:
- 玩家生成逻辑
- 游戏规则同步
- 状态一致性管理
这样可以防止作弊并保证公平性。
- UI设计
- 控件蓝图
- 生命值
- 弹药数量
- 击杀或得分信息
- 测试与调试
-
编辑器内模拟多个客户端
-
本地客户端连接服务器
-
命令行启动服务器进行压力测试
- 打包与部署
- 打包客户端版本
- 部署服务器至云平台或物理服务器
- 开放网络访问供玩家连接
部分信息可能已经过时