【译】UE4——Main Classes一览

发表于2016-01-31
评论4 2.3k浏览
声明:原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权;

  有很多使用其他引擎经验做游戏的朋友,都在刚开始接触UE4 谁在做使用不同的引擎比UE4的游戏很多的有使用UE4,
接下来我将开始和解释的主要的几个类是如何工作的。让我们创建启动内容的新的空白项目。本教程已经使用虚幻引擎创建4.8.2。请确保您引擎版本是同一个版本。

常用类的说明:
· Object:Object是虚幻引擎的其他类的基类。它不能被加入到世界(无法在关卡中生成或放置),但它带有数据和函数。Object是一个不需要放入关卡的类,Draw Call在Object不会发生。目前,不幸的是(4.7版本)不能在蓝图使用Object。对于这样的行为,你应该用我将描述在后面描述Actor组件。
· Actor: Actor可以在关卡中生成。它可以通过像静态网格组件这种方式通过图像来呈现。如果你想获得Actor,你需要将它放入构建一个在关卡中。你会从Actor中调用Draw Call。假如您需要的类只是由数据组成,那么不要从Actor去扩展。
· Pawn:简单的说Pawn是一个Actor,但是可以使用PlayerController或AIController控制。例如Pawn可以是由玩家控制的一条狗或者RTS游戏由AI在控制的单位。
· Character:Character是一个Pawn但在其之上增加MovementComponent。由于它可以使用导航和左右移动。此外Character添加了·SkeletalMeshComponent:你可以设置图像表现为default.让我们创建新角色并将其命名为GameplayCharacter。
小技巧:在移动设备MovementComponent是很占资源,所以如果你正在做的RTS游戏有很多角色,你应继承Pawn和然后实现自己的运动规则。
· PlayerController:PlayerController中最重要的部分是,它可以从获得玩家的输入信息(键盘,鼠标,pad等),它拥有Pawn和Character。你可以有不同的PlayerControllers当你需要有不同的移动规则。例如,你控制车的CarPlayerController需要由不同的PlayerController去用于控制飞机。同样对于主菜单的控制或控制游戏性也是如此。让我们创建新的PlayerController并将其命名为GameplayPlayerController。
· AIController:跟PlayerController一样拥有Pawn和Character,但它没有获得玩家输入的功能。相反,它可以使用所有的AI的工具-行为树,传感元件等。
游戏实例,游戏实例是存储数据的全球最好的类。本课程将在游戏开始催生和关闭游戏的时候被删除。其他类衍生的开始,并前往其他级别后删除。您可以访问从每一个蓝图GameInstance一流!让我们创建一个。将它命名为ShooterGameInstance。
小技巧:Pawns VS Controllers基本上Pawn应该负责图像呈现(mesh,动画等)而Controller相当于的大脑负责告诉他移到哪里,去做些什么等。
Game Instance:Game Instance需要与你的项目进行连接。按照Edit->Project Settings->Maps&Modes ,将默认的游戏实例改成ShooterGameInstance。


从现在开始,当你开始游戏ShooterGameInstance将生成,你将可以访问其他的类。
· Game Mode:部分游戏模式中最重要的部分是只能由 服务器可以访问它。在单人游戏玩家便是服务器,因此没有必要使用server>client 功能,但你仍然需要了解它。当有人连接到你的关卡或者有人断开连接。基本上游戏模式存储着关卡的默认的信息:
1、虚幻引擎每一关卡需要有某个的Game Mode连接,
2、Game Mode存储Default Pawn数据,Default Player Controller,Default HUD Class and Default Game State。
3、当关卡打开时,他们应该生成。大多Game Mode用于判断哪些玩家完成了关卡或关卡进行到哪一步。简单的Game Mode就是关卡规则的制定和对其进行管理。让我们创建Game Mode类并将其命名为:GameplayGameMode。稍后我们会有更多的游戏模式(用于菜单或不同的游戏性活动)创造Game Mode也需要被分配到一个级别之后。


· Game State:简单地说Game State是关于跟踪关卡进度(游戏),每个人都能访问Game State。比如玩家想知道回合制游戏中到谁的回合了或者是在射击游戏中当前的目标。让我们创建的游戏模式类并将其命名为:GameplayGameState。打开GameplayGameMode并选择GameplayGameState,然后指定GameplayGameMode为创建的GameplayGameState。


· HUD:虚幻引擎3中,这是创建2D UI的主要类。在虚幻引擎4,我们有UMG较之更为好用。我依然使用这个类来存储我自己的UMG Widgets引用,这样很有用,可以让你能访问HUD的所有类。让我们创建HUD类并将其命名为:GameplayHUD。作为游戏状态HUD需要被分配到游Game Mode。请这样做,同样请连接先前创建的GameplayPlayerController和GameplayCharacter到GameMode。
  虚幻引擎4是真是个庞大的引擎,你应该尝试使用它作为意。学习这些类,然后去在去声明这些类之前思考将其放在哪!我想说明一下今天最后一件事是如何UE4 Handle运行游戏,因为它连接到这些类。
  当你运行游戏GameInstance类将会生成。默认关卡会被加载,当关卡处于打开状态会检查GameMode并从GameMode中生成所有默认的类。DefaultPlayerController会询问 DefaultPawn所以你不需要手动占有它,被放置在关卡的所有Actors都会生成。

  当然这是很抽象的概括。当你打开不同关卡(或重新启动当前的)除了GameInstance类的所有类会被破坏。!如果您有关于虚幻引擎4的基类问题,请让我知道,希望我能回答!

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引