查看: 339|回复: 7

[编程指南] 【游戏性编程 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-26 02:01:42 | 显示全部楼层 |阅读模式



此文档将大概讲述引擎的核心功能,介绍一些核心架构概念,助您了解基本代码。
UObjects 和 Actors
Actor 是由 AActor</code> 类派生而来的类实例;能被放入游戏世界场景的所有游戏性对象的基础类。 对象 是继承自 UObject</code> 类的类实例;虚幻引擎中所有对象的基础类,包括 Actor。因此,实际上虚幻引擎中所有的实例均为对象;然而,术语 Actors 通常用于指代在层级中继承自 AActor</code> 的类实例,而术语“对象”用于指代非继承自 AActor</code> 类的类实例。您创建的类多数均在其层级中的某个点继承自 AActor</code>。

总体而言,Actor 可被看做整体物体或实体,而对象则为更细节化的部件。Actor 经常使用作为细节化对象的 组件,对其功能的特定方面进行定义,或为属性合集保存数值。用汽车作为例子。汽车作为整体是一个 Actor,而汽车的部件(如轮子和车门)则都是该 Actor 的组件。

游戏性框架类
基本游戏类包括表示玩家、盟友、敌人的功能以及使用玩家输入或AI逻辑控制这些角色的功能。还有一些类用于为玩家创建 抬头显示信息及相机。最后,像GameMode、GameState及PlayerState这样的类用于设置游戏规则,并且跟踪游戏及玩家的进展情况。

这些类都会创建某种类型的Actor,这些Actor可以放置到关卡中或者根据需要来生成。


代表世界中的玩家、好友及敌人


< src="./images/Gameplay/Framework/pawn_lander.jpg[/img]

    <dl >Pawn
Pawn是可以作为世界中的一个 “代理”的Actor。Pawn可以由控制器处理,它们可以轻松地接受输入,并且可以执行各种各样的类似于玩家的动作。注意,没有假定Pawn是类人的。
Character(角色)
角色是类人的Pawn。它本身默认具有一个用于碰撞的CapsuleComponent(胶囊体组件)和CharacterMovementComponent (角色运动组件)。它可以进行基本的拟人运动,它可以平滑地在网络上复制运动,并且它具有一些动画相关的功能。


  
使用玩家输入或AI逻辑控制Pawn


< src="./images/Gameplay/Framework/controller_lander.jpg[/img]

    <dl >Controller(控制器)
控制器是负责管理Pawn的Actor。一般有两种控制器:AIController 和PlayerController。控制器可以“具有”一个Pawn并控制他。
PlayerController(玩家控制器)
PlayerController(玩家控制器)是Pawn和控制它的人类玩家间的接口。PlayerController本质上代表了人类玩家的意愿。
AIController (人工智能控制器)
AIController正如其名,是控制Pawn的一个仿真“意愿”。


  
向玩家显示信息


< src="./images/Gameplay/Framework/camera_lander.jpg[/img]

    <dl >HUD
HUD是一种“平头显示信息”,或者说是二维的屏幕显示信息,在很多游戏中都很常见。想一下生命值、弹药量、枪支十字准线等。每个PlayerController一般都具有一些这样的信息。
Camera(相机)
PlayerCameraManager是玩家的眼睛,管理玩家如何表现。每个PlayerController一般也具有一个这样的类。关于更多信息,请参照相机工作流程页面。


  
设置及跟踪游戏规则


< src="./images/Gameplay/Framework/hud_lander.jpg[/img]

    <dl >GameMode(游戏模式)
游戏这个概念划分为两个类。GameMode 游戏模式是游戏的定义,包括像游戏规则及获胜条件这样的内容。它仅存在于服务器上。它一般在游戏过程中不会有太多数据改变,并且它一定不应该具有客户端需要的临时数据。
GameState(游戏状态)
GameState 游戏状态包含了游戏状态,这包括像关联玩家的列表、分数、象棋游戏中的象棋位置或者在开放世界游戏中已经完成的任务列表。GameState存在于服务器和所有客户端上,可以自由地进行复制来保持同步。
PlayerState(玩家状态)
PlayerState是游戏中的一个参与者的状态,比如人类玩家或者模拟人类玩家的机器人。作为游戏一部分存在的非人类玩家AI没有PlayerState。PlayerState中适合包含的示例数据有:玩家姓名、分数、像多人在线竞技场这样的比赛中的级别、或在夺旗模式游戏中玩家当前是否正占领旗帜。所有玩家的PlayerStates在所有机器上都存在(和PlayerControllers不同),并且可以自由地进行复制来保持同步。

架构中类的关系
这个流程图解释了这些核心游戏类之间的关系。一个游戏由GameMode和GameState构成。加入游戏的人类玩家同PlayerController相关联。这些PlayerController允许玩家在游戏中占有pawn,以便它们在游戏中有物理表示。PlayerController也为玩家提供了输入控制、平头显示信息或HUD、及处理相机视图的PlayerCameraManager。

< src="./images/Gameplay/Framework/QuickReference/GameFramework.jpg[/img]


关于游戏架构类的更多信息,请参照Gameplay 框架。
回复

使用道具 举报

0

主题

1286

帖子

3899

积分

vip会员

Rank: 1

积分
3899
发表于 2016-7-2 19:22:53 来自手机 | 显示全部楼层
看看效果,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

885

帖子

2867

积分

vip会员

Rank: 1

积分
2867
发表于 2016-7-3 22:53:20 来自手机 | 显示全部楼层
恩,好资源~ 哈哈~
回复 支持 反对

使用道具 举报

0

主题

851

帖子

2835

积分

vip会员

Rank: 1

积分
2835
发表于 2016-7-4 11:20:15 | 显示全部楼层
快没金币了,看看需要多少?
回复 支持 反对

使用道具 举报

0

主题

813

帖子

2647

积分

vip会员

Rank: 1

积分
2647
发表于 2016-7-10 01:13:20 来自手机 | 显示全部楼层
看看是什么东西
回复 支持 反对

使用道具 举报

悄然等待 该用户已被删除
发表于 2016-7-20 11:38:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

845

帖子

2811

积分

vip会员

Rank: 1

积分
2811
发表于 2016-7-21 07:17:50 | 显示全部楼层
看看价钱,然后考虑。
回复 支持 反对

使用道具 举报

0

主题

893

帖子

2947

积分

vip会员

Rank: 1

积分
2947
发表于 2016-7-23 03:20:00 来自手机 | 显示全部楼层
好资源,谢谢
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部