什么是GameMode


  GameMode指的是游戏模式,代表着游戏的类型,它指定了我们的玩家,我们控制的模型等等,相当于游戏的规则。而GameMode包括一下几类最基础的内容:

1. Default Pwan Class,即默认的Pawn或Character

2. HUD Class,即所显示的HUD类

3. Player Controller Class,即玩家的控制器

4. Game State Class,即游戏状态类

5. Player State Class,即玩家状态类

6. Spectator Class,即观众类

  我们可以在World Settings即世界设置里面指定我们这个游戏所运行的GameMode类,如下图



  而在GameMode类的C++代码中,我们要先引用我们所创建的以上类型的头文件方可使用代码指定

  例如:

  我们有一个Controller类,它的名字为MyPlayerController,其在C++代码中指定的方法如下(滑动代码可以查看全部):


  引入这个类的头文件:#include "MyPlayerController.h"
  在这个 GameMode 的构造函数内添加:PlayerControllerClass = AMyPlayerController::StaticClass();
  这样我们就用C++代码将我们的 Controller 指定在我们这个 GameMode 内了
  同理其他的类型也是这样指定进 GameMode 中的。
					


什么是Pawn


  Pawn就是Actor的一个子类,这个类是可以由玩家或者AI控制,在我们在没有指定默认的Pawn时,UE4会自动帮我们生成一个Default Pawn,它包括了一个球体组件,即CollisionComponent和一个默认的模型组件,即StaticMeshComponent和一个控制移动的DefaultPawnMovementComponent组件和一个CameraComponent摄像机组件.



什么是Charater


  Charater是一个特殊的Pawn ,其实也没有多特殊,无非就是在Pawn的基础上加上了CapsuleComponent(胶囊体碰撞组件)SkeletalMesh(骨骼模型组件)和ArrowComponent(方向箭头组件)这三个组件。(实质上两者没有多大区别,无非就是Pawn是Charater的父类罢了,在组件合适的情况下,Pawn也可以完完全全属于Charater)由于使用的胶囊体组件,所以类人生物是可以包裹住的,所以习惯上,一般Charater用于类人形角色,而Pawn用于非人形角色

  其中,SkeletalMesh为骨架网络物体,它与StaticMesh不同,StaticMesh为静态网络物体,是没有骨架的物体,而SkeletalMesh是绑定了骨骼骨架的物体。

  而ArrowComponent这个组件将会为我们判断这个角色的正向方向是哪个方向。



什么是Controller


  Controller就是控制器,它是用来控制Pawn的,并且,Controller可以允许操控一个Pawn或Charater并控制它,一般有两种控制器,一个是PlayerController,即玩家控制器,另外一个是AIController,即AI控制器。我们可以这样子去理解,Controller就是大脑,用于发出指令,而Pawn或Charater就是身体,用于接收指令并作出相应的动作。



什么是HUD


  HUD其实很简单,就是一种平面的信息显示,属于UI的一种,例如生命值,血条能量条,弹药数量,十字准星等UI相关的信息显示,都是HUD的范畴。换句话说,所有的UI界面都是绑定在HUD这个类上,由这个类进行显示的。