虚幻4主要类的解释,以及基础设置
高级类的解释:
l Object“对象”是虚幻引擎类的基础类。它不能被添加到word(不能spawned或放置在关卡中),但它可以有数据和功能。如果你不需要有什么东西在关卡,那么Object是适合的类,因为它不会被绘制调用。目前,不幸的是在UE4.7不能在蓝图使用Object。对于这样的行为,你应该用Actor Component,我将在以后的文章描述。
l Actor可以在关卡中生成。它带有组件例如:如静态网格(Static Mesh),这是Actor的图形表现。如果你想获得Actor你需要在关卡中进行生成。
l Pawn简单讲Pawn只是一个Actor,但它可以通过的PlayerController或AIController被占有。例如Pawn可以作为一个单位在RTS游戏中被玩家或AI控制
l Character是一个Pawn但增加了MovementComponent组件。由于它可以使用导航和左右移动。并且可以添加SkeletalMeshComponent(骨架网格物体),使你可以指定图形动画表现
开始创建新的Character角色,并将其命名GameplayCharacter
l PlayerController 中最重要的部分是,它可以让玩家进行输入(键盘,鼠标,触控板等),它可以posses Pawn和Character获取输入。你可以为不同的运动功能设置不同的PlayerControllers。例如,控制车建立CarPlayerController再建立一个不同的PlayerController用于控制飞机。同样的事情来控制主菜单或控制游戏。
让我们创建新的PlayerController并将其命名为GameplayPlayerController。
l AIController如同PlayerController一样可以posses Pawn和Character,但它并不能访问玩家的输入。相反,它可以访问所有的AI工具例如sensingcomponents(感测组件)behavior trees (行为树)等
有用的技巧:Pawn应该是图形表现(网格物体,动画等)和Controller应该是Pawn的大脑告诉他去哪里,做什么等。
l Game Instance 游戏实例是存储数据的最好的类。此类将在游戏开始时生成,在关闭游戏时被删除。其他类则是在关卡开始时生成,并在进入其他关卡后删除。您可以从每一个蓝图访问GameInstance类!让我们创建一个。将其命名为ShooterGameInstance。
GameInstance需要与你的项目进行连接。要做到这一点去编辑- >项目设置- >地图和模式,并改变默认的游戏实例为ShooterGameInstance。从现在开始,当你开始游戏ShooterGameInstance将生成,并将被其他所有类访问。
l Game Mode(游戏模式)最重要的是,只有服务器可以访问它。在单人游戏中,没有必要使用服务器>客户端功能,但你仍然应该了解它。它包含当有人连接到你的关卡或者有人被断开的事件。基本上Game Mode储存了关卡的默认信息:
-虚幻引擎每个关卡需要有一定的游戏模式连接,
- Game Mode存储数据包含Default Pawn, Default Player Controller,Default HUD Class and Default Game State -他们将在生成关卡时被打开,大多时候,游戏模式用于确定哪些玩家赢得关卡或关卡的完成情况。简单的游戏模式即关卡的规则并且管理这些规则。让我们创建游戏模式类并将其命名为:GameplayGameMode。稍后我们会有更多的游戏模式(用于菜单或不同的游戏活动)创建的游戏模式也需要被分配到一个关卡之中
l Game State 简单的游戏状态是用于跟踪关卡的进展(游戏),并且每个人的都会访问游戏状态。比如玩家想知道把它是在回合制游戏哪个回合,或者在射击游戏中当前的目标是什么,让我们创建的游戏模式类并将其命名为:GameplayGameState。
l HUD 在虚幻引擎3中,这是创建2D UI的主类。在虚幻引擎4,我们有UMG。不过我使用这个类来存储我的UMG作为窗口小部件的引用,让我们创建HUD类并将其命名为:GameplayHUD。作为游戏状态HUD需要被分配到GameMode中
虚幻引擎4是真正的大引擎,你应该尝试使用它。我想解释一下今天最后一件事是UE4如何处理运行游戏
- 当你运行游戏时GameInstance类将生成,
- 默认关卡会被加载,
- 当关卡开启,它会检查Game Mode以及生成Game Mode中所有的类,
- DefaultPlayerController被要求posses DefaultPawn所以你不需要手动设置它,
- 生成所有的Actor,并且将其放置在关卡中。
当然,这仅仅是一段高度概括的流程