You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
//depot/UE4/Engine/Documentation/...
to //UE4/Main/Engine/Documentation/...
[CL 3032506 by Jeff Wilson in Main branch]
95 lines
4.8 KiB
Plaintext
95 lines
4.8 KiB
Plaintext
INTSourceChangelist:2100967
|
||
Availability:Public
|
||
Title:游戏架构快速指南
|
||
Crumbs:%ROOT%, Gameplay, Gameplay/Framework
|
||
Description:关于构成游戏架构的游戏规则、角色、控制器、用户界面等类的概述。
|
||
Version: 4.9
|
||
type:reference
|
||
parent:Gameplay/Framework
|
||
order:2
|
||
tags:Gameplay Framework
|
||
|
||
基本游戏类包括表示玩家、盟友、敌人的功能以及使用玩家输入或AI逻辑控制这些角色的功能。还有一些类用于为玩家创建
|
||
抬头显示信息及相机。最后,像GameMode、GameState及PlayerState这样的类用于设置游戏规则,并且跟踪游戏及玩家的进展情况。
|
||
|
||
这些类都会创建某种类型的Actor,这些Actor可以放置到关卡中或者根据需要来生成。
|
||
|
||
|
||
|
||
[OBJECT:IconSection]
|
||
[PARAM:icon]
|
||
(w:300)
|
||
[/PARAM]
|
||
[PARAM:title]
|
||
代表世界中的玩家、好友及敌人
|
||
[/PARAM]
|
||
[PARAM:description]
|
||
$ Pawn : [](Gameplay/Framework/Pawn)是可以作为世界中的一个 “代理”的Actor。Pawn可以由控制器处理,它们可以轻松地接受输入,并且可以执行各种各样的类似于玩家的动作。
|
||
注意,没有假定Pawn是类人的。
|
||
|
||
$ Character(角色) : [](Gameplay/Framework/Pawn/Character)是类人的Pawn。它本身默认具有一个用于碰撞的CapsuleComponent(胶囊体组件)和CharacterMovementComponent (角色运动组件)。它可以进行基本的拟人运动,它可以平滑地在网络上复制运动,并且它具有一些动画相关的功能。
|
||
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
[OBJECT:IconSection]
|
||
[PARAM:icon]
|
||
(w:300)
|
||
[/PARAM]
|
||
[PARAM:title]
|
||
使用玩家输入或AI逻辑控制Pawn
|
||
[/PARAM]
|
||
[PARAM:description]
|
||
|
||
$ Controller(控制器) : [](Gameplay/Framework/Controller)是负责管理Pawn的Actor。一般有两种控制器:AIController 和PlayerController。控制器可以“具有”一个Pawn并控制他。
|
||
|
||
$ PlayerController(玩家控制器) : PlayerController(玩家控制器)是Pawn和控制它的人类玩家间的接口。PlayerController本质上代表了人类玩家的意愿。
|
||
|
||
$ AIController (人工智能控制器): AIController正如其名,是控制Pawn的一个仿真“意愿”。
|
||
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
[OBJECT:IconSection]
|
||
[PARAM:icon]
|
||
(w:300)
|
||
[/PARAM]
|
||
[PARAM:title]
|
||
向玩家显示信息
|
||
[/PARAM]
|
||
[PARAM:description]
|
||
$ HUD : [HUD](Gameplay/Framework/UIAndHUD)是一种“平头显示信息”,或者说是二维的屏幕显示信息,在很多游戏中都很常见。想一下生命值、弹药量、枪支十字准线等。每个PlayerController一般都具有一些这样的信息。
|
||
$ Camera(相机) : PlayerCameraManager是玩家的眼睛,管理玩家如何表现。每个PlayerController一般也具有一个这样的类。关于更多信息,请参照[相机工作流程](Gameplay/Framework/Camera)页面。
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
[OBJECT:IconSection]
|
||
[PARAM:icon]
|
||
(w:300)
|
||
[/PARAM]
|
||
[PARAM:title]
|
||
设置及跟踪游戏规则
|
||
[/PARAM]
|
||
[PARAM:description]
|
||
|
||
$ GameMode(游戏模式) : 游戏这个概念划分为两个类。[](Gameplay/Framework/GameMode)是游戏的定义,包括像游戏规则及获胜条件这样的内容。它仅存在于服务器上。它一般在游戏过程中不会有太多数据改变,并且它一定不应该具有客户端需要的临时数据。
|
||
|
||
$ GameState(游戏状态) : [](Gameplay/Framework/GameState)包含了游戏状态,这包括像关联玩家的列表、分数、象棋游戏中的象棋位置或者在开放世界游戏中已经完成的任务列表。GameState存在于服务器和所有客户端上,可以自由地进行复制来保持同步。
|
||
|
||
$ PlayerState(玩家状态) : PlayerState是游戏中的一个参与者的状态,比如人类玩家或者模拟人类玩家的机器人。作为游戏一部分存在的非人类玩家AI没有PlayerState。PlayerState中适合包含的示例数据有:玩家姓名、分数、像多人在线竞技场这样的比赛中的级别、或在夺旗模式游戏中玩家当前是否正占领旗帜。所有玩家的PlayerStates在所有机器上都存在(和PlayerControllers不同),并且可以自由地进行复制来保持同步。
|
||
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
## 架构中类的关系
|
||
|
||
这个流程图解释了这些核心游戏类之间的关系。一个游戏由GameMode和GameState构成。加入游戏的人类玩家同PlayerController相关联。
|
||
这些PlayerController允许玩家在游戏中占有pawn,以便它们在游戏中有物理表示。PlayerController也为玩家提供了输入控制、平头显示信息或HUD、
|
||
及处理相机视图的PlayerCameraManager。
|
||
|
||
[REGION:raw]
|
||
(w:550)
|
||
[/REGION]
|
||
|
||
关于游戏架构类的更多信息,请参照[](Gameplay/Framework)。
|