常见资产和模块
常见资产
类型 | 功能 |
---|
Aim Offset | 叠加在基础动作上,实现瞄准偏移。 |
Animation Blueprint | 实现动画切换逻辑,包括状态机等。 |
Blend Space | 通过参数将多个动画混合在一起,比如,实现不同速度和方向的移动。 |
Behavior Tree | 由AIController开启,控制AI的行为逻辑,包括行为树任务和服务等。 |
Blackboard | 存储变量,配合Behavior Tree实现行为逻辑。 |
Sound Attenuation | 实现空间音频。 |
Sound Cue | 实现混合音频,比如,一种动作发出不同种声音。 |
Blueprint Class | 通过脚本实现游戏逻辑。 |
Material | 制作材质。 |
Material Instance | 配置Material参数后在网格上使用。 |
Widget Blueprint | 制作UI,实现UI逻辑,比如,HUD,受伤减血。 |
常见模块
游戏 (Game)、程序 (Program) 和 编辑器 (Editor) 是UBT的三个 构建目标 (Target),每个构建目标由若干个 模块(Module) 完成,每个模块实现一种特定的功能,模块被划分为 运行时 (Runtime)、编辑器功能 (Editor) 和 开发工具 (Utility) 三类,大多数游戏编程只使用运行时模块。
类别 | 模块 |
---|
Runtime | Core |
Runtime | CoreUObject |
Runtime | Engine |
Runtime | UMG |
Plugins | OnlineSubsystem |
Core
类/结构体 | 属性/方法 | 功能 |
---|
FMath | Min() | 选择最小值。 |
TVector | - | 三维向量。 |
TVector | Rotation() | 将三维向量转换为四元数。 |
TVector | Size() | 计算当前向量长度。 |
TArray | - | 动态数组。 |
TArray | TArray() | UE的数组容器。 |
TArray | Num() | 该数组的含有的元素个数。 |
TRotator | - | 旋转信息容器。 |
TRotator | Yaw | 偏航角。 |
TRotationMatrix | - | 没有平移的旋转矩阵。 |
TRotationMatrix | GetUnitAxis() | 获取旋转矩阵中某个轴的单位长度。 |
TSharedPtr | - | 共享指针。 |
TSharedPtr | IsValid() | 检查这个共享指针是否指向一个对象,而不是空的。 |
TSharedPtr | ToSharedRef() | 将共享指针变为共享引用。 |
TObjectPtr | - | 对象指针。 |
TObjectPtr | Get() | 获取对象指针。 |
CoreUObject
类/结构体 | 属性/方法 | 功能 |
---|
UObjectBase | GetGameInstance() | 获取当前游戏实例。 |
UObject | CreateDefaultSubobject() | 创建子组件。 |
UObject | GetWorld() | 获取该对象所在的关卡。 |
- | Cast() | 安全转换类型。 |
- | StaticClass() | 由UHT生成,表示当前自己创建的类。 |
Engine
类/结构体 | 属性/方法 | 功能 |
---|
AActor | PrimaryActorTick.bCanEverTick | 控制是否开启Tick。 |
AActor | RootComponent | 根组件。 |
AActor | BeginPlay() | 游戏开始时调用,比如,初始化。 |
AActor | Tick() | 每帧调用。 |
AActor | SetRootComponent() | 设置Actor的根组件。 |
AActor | GetWorld() | 获取此Actor所在的关卡实例。 |
AActor | TakeDamage() | 使该Actor受伤。 |
AActor | SetOwner() | 设置该Actor的拥有者。 |
AActor | GetOwner() | 获取该Actor的拥有者。 |
AActor | GetActorLocation() | 获取该Actor的位置。 |
AActor | GetActorRotation() | 获取该Actor的旋转。 |
AActor | GetActorScale() | 获取该Actor的缩放。 |
AActor | AttachToComponent() | 将该Actor附加到基元组件的某个Socket。 |
AActor | GetActorForwardVector() | 获取该Actor的X方向的单位向量。 |
AActor | GetActorRightVector() | 获取该Actor的Y方向的单位向量。 |
AActor | GetWorldTimerManager() | 获取该Actor所在关卡的时间管理器。 |
AActor | GetVelocity() | 如果使用了移动组件,则返回速度向量。 |
APawn | SetupPlayerInputComponent() | 绑定玩家输入。 |
APawn | DetachFromControllerPendingDestroy() | 将该Pawn与其所属的控制器分离。 |
APawn | GetController() | 获取该Pawn的控制器。 |
APawn | AddControllerPitchInput() | 添加该Pawn所属的控制器的俯仰角。 |
APawn | AddControllerYawInput() | 添加该Pawn所属的控制器的偏航角。 |
APawn | AddMovementInput() | 添加该Pawn的移动。 |
APawn | bUseControllerRotationYaw | 是否使用控制器控制该Pawn的偏航角。 |
APawn | Controller | 控制当前Pawn的控制器。 |
APawn | GetLocalRole() | 获取本地网络角色。 |
ACharacter | GetMesh() | 获取到该角色的骨骼网格体组件。 |
ACharacter | GetCapusleComponent() | 获取该角色的胶囊体组件。 |
ACharacter | GetCharacterMovement() | 返回角色移动组件。 |
- | - | - |
AController | IsPlayerController() | 判断该控制器是不是玩家控制器。 |
AController | GameHasEnded() | 游戏结束。 |
AController | GetPawn() | 获取该控制器的Pawn。 |
AController | GetPlayerViewPoint() | 返回Pawn的视口中心点和旋转,对于AI指眼睛,对于玩家指摄像机。 |
AController | GetPlayerState() | 获取该控制器的玩家状态。 |
AController | GetControlRotation() | 获取该控制器的旋转。 |
APlayerController | RestartLevel() | 重启当前关卡。 |
APlayerController | SetInputMode() | 设置该玩家的输入模式。 |
APlayerController | SetShowMouseCursor() | 设置该玩家的光标可见性。 |
APlayerController | ClientTravel() | 将此客户端玩家传送到特定的IP地址。 |
AAIController | RunBehaviorTree() | 执行行为树。 |
AAIController | GetBlackboardComponent() | 获取到该Controller所使用的行为树的黑板。 |
AAIController | LineOfSightTo() | 检测AI是否能看到某个Actor。 |
- | - | - |
AGameModeBase | PostLogin() | 玩家登录进入后调用。 |
AGameModeBase | Logout() | 玩家退出时调用。 |
AGameModeBase | GameState | 当前游戏状态。 |
AGameModeBase | bUseSeamlessTravel | 是否开启无缝传送。 |
AGameStateBase | PlayerArray | 所有玩家状态数组,包括服务端和客户端。 |
APlayerState | GetPlayerName() | 获取当前玩家状态的玩家名称。 |
- | - | - |
UInputComponent | BindAxis() | 输入绑定轴。 |
UInputComponent | BindAction() | 输入绑定键。 |
UBrainComponent | GetBlackboardComponent() | 获取该行为树的黑板。 |
UBrainComponent | GetAIOwner() | 获取该行为树的拥有者AI控制器。 |
UBlackboardComponent | SetValueAsVector() | 设置黑板上的向量值。 |
UBlackboardComponent | SetValueAsObject() | 设置黑板上的对象值。 |
UBlackboardComponent | ClearValue() | 清除黑板上的某个Key。 |
UCharacterMovementComponent | IsFalling() | Character是否正在下落。 |
UCharacterMovementComponent | GetCurrentAcceleration() | 返回当前Character的加速度。 |
UCharacterMovementComponent | bOrientRotationToMovement | 是否旋转至加速度方向去移动。 |
USceneComponent | SetupAttachment() | 将一个组件附加到另一个组件上,形成组件树。 |
- | - | - |
USceneComponent | GetRightVector | 获取该场景组件的Y方向向量。 |
USceneComponent | GetForwardVector | 获取该场景组件的X方向向量。 |
USpringArmComponent | SocketName | 弹簧臂末端的Socket。 |
USpringArmComponent | TargetArmLength | 弹簧臂长度。 |
USpringArmComponent | bUsePawnControlRotation | 是否使用Pawn控制弹簧臂的旋转。 |
UCameraComponent | bUsePawnControlRotation | 是否使用Pawn控制相机的旋转。 |
- | - | - |
UPrimitiveComponent | SetCollisionEnabled | 设置该碰撞体是否启用。 |
UPrimitiveComponent | SetSimulatePhysics | 该网格组件是否开启物理模拟。 |
UPrimitiveComponent | OnComponentHit | 组件碰撞事件。 |
UPrimitiveComponent | GetMass() | 获取网格组件的质量。 |
UPrimitiveComponent | AddForce() | 对该基元组件施加力。 |
UPrimitiveComponent | AddImpulse() | 对该基元组件施加脉冲力。 |
USkinnedMeshComponent | HideBoneByName() | 根据名称隐藏骨骼。 |
- | - | - |
UWorld | LineTraceSingleByChanne()l | 使用特定通道发射一条射线,只检测第一个。 |
UWorld | SpawnActor() | 在该关卡中生成一个Actor。 |
UWorld | GetAuthGameMode() | 获取当前关卡的GameMode。 |
UWorld | ServerTravel() | 将服务器传送到新的关卡。 |
UWorld | GetFirstPlayerController() | 获取该关卡中第一个玩家控制器。 |
UWorld | GetFirstLocalPlayerFromController() | 通过玩家控制器获取到第一个有效的本地玩家。 |
- | - | - |
ULocalPlayer | GetPreferredUniqueNetId() | 获取该本地玩家唯一的网络ID。 |
- | - | - |
UGameplayStatics | SpawnEmitterAttached() | 在Socket上附加特效,特效播放完毕后会自动销毁。 |
UGameplayStatics | SpawnSoundAttached() | 在Socket上附加音效,音效播放完毕后会自动销毁。 |
UGameplayStatics | SpawnEmitterAtLocation() | 在关卡中某个位置创建特效,特效播放完毕后会自动销毁。 |
UGameplayStatics | SpawnSoundAtLocation() | 在关卡中某个位置播放音效,音效播放完毕后会自动销毁。 |
UGameplayStatics | GetAllActorsOfClass() | 获取某个关卡的某个类型的所有Actor。 |
UGameplayStatics | GetPlayerPawn() | 通过索引获取某个关卡的玩家Pawn。 |
- | - | - |
UGameInstance | GetSubsystem() | 获取指定类型的子系统。 |
UGameInstance | GetFirstLocalPlayerController() | 获取该关卡的第一个本地玩家的控制器。 |
- | - | - |
UEngine | AddOnScreenDebugMessage() | 在屏幕上打印字符。 |
- | - | - |
UAnimInstance | NativeInitializeAnimation() | 动画蓝图初始化时调用。 |
UAnimInstance | NativeUpdateAnimation | 动画蓝图每帧调用。 |
UAnimInstance | TryGetPawnOwner() | 获取挂载该蓝图脚本的Pawn。 |
- | - | - |
TActorRange | TActorRange() | 获取该关卡所有指定类型的Actor。 |
FTimerManager | SetTimer() | 延迟某段时间后执行某个操作。 |
FHitResult | Location | 击中位置。 |
FHitResult | GetActor() | 击中的Actor。 |
FHitResult | Normal | 击中的Actor的法线。 |
FCollisionQueryParams | AddIgnoredActor() | 添加碰撞忽视的Actor。 |
FInputModeUIOnly | SetWidgetToFocus() | 聚焦的UI。 |
FInputModeUIOnly | SetLockMouseToViewportBehavior() | 设置鼠标在该视口的表现。 |
FInputModeGameOnly | - | 仅限游戏输入。 |
UMG
类/结构体 | 属性/方法 | 功能 |
---|
UWidget | RemoveFromParent() | 从玩家视口上移除该UI。 |
UWidget | SetVisibility() | 设置UI可见性。 |
UWidget | `SetIsEnabled() | 设置是否可用。 |
UTextBlock | SetText() | 设置文本。 |
UUserWidget | AddToViewport | 将该UI添加到视口。 |
UUserWidget | Initialize() | UI实例化时执行。 |
UUserWidget | NativeDeStruct() | 切换关卡时调用。 |
UUserWidget | SetIsFocusable() | 设置该UI是否可以被聚焦选中。 |
UButton | OnClicked | 按钮点击事件,可动态绑定回调函数。 |
- | CreateWidget() | 创建一个UI。 |
AIModule
类/结构体 | 属性/方法 | 功能 |
---|
UBTNode | NodeName | 该节点的名字。 |
UBTAuxiliaryNode | TickNode() | 该节点的行为每帧更新。 |
UBTService_BlackboardBase | GetSelectedBlackboardKey | 获取到该服务黑板中选择的Key。 |
UBTTaskNode | ExecuteTask() | 执行任务。 |
OnlineSubsystem
类/结构体 | 属性/方法 | 功能 |
---|
FOnlineSession | SessionSettings | 该会话的设置。 |
FOnlineSessionSearch | bIsLanQuery | 是否开启局域网查询。 |
FOnlineSessionSearch | MaxSearchResults | 最大查询会话的数量。 |
FOnlineSessionSearch | QuerySettings | 查询会话的设置。 |
FOnlineSessionSearch | SearchResults | 会话查询的结果,一个数组。 |
FOnlineSessionSettings | Get() | 获取到定义在该会话设置中的键值对。 |
FOnlineSessionSettings | Set() | 使用键值对定义会话设置。 |
FOnlineSessionSettings | bIsLANMatch | 该会话是否开启局域网连接。 |
FOnlineSessionSettings | NumPublicConnections | 公开的最大可以连接的数量。 |
FOnlineSessionSettings | bAllowJoinInProgress | 是否允许在游戏过程中加入。 |
FOnlineSessionSettings | bAllowJoinViaPresence | 是否允许玩家加入。 |
FOnlineSessionSettings | bShouldAdvertise | 是否在服务器上公开广播。 |
FOnlineSessionSettings | bUsesPresence | 是否显示用户状态信息。 |
FOnlineSessionSettings | bUseLobbiesIfAvailable | 如果平台支持大厅,是否使用。 |
FOnlineSessionSettings | BuildUniqueId | 是否可以查询到其他玩家开的房间。 |
FOnlineSessionSearchResult | Session | 查询到结果中的会话。 |
IOnlineSubsystem | Get() | 获取网络子系统。 |
IOnlineSubsystem | GetSessionInterface() | 获取管理服务器会话的接口。 |
IOnlineSubsystem | GetSubsystemName() | 获取网络子系统名称。 |
IOnlineSession | GetResolvedConnectString() | 解析特定平台的加入会话的地址。 |
IOnlineSession | CreateSession() | 创建一个会话。 |
IOnlineSession | FindSessions() | 查询会话。 |
IOnlineSession | JoinSession() | 加入会话。 |
IOnlineSession | DestroySession() | 销毁会话。 |
IOnlineSession | GetNamedSession | 查找指定名字的会话。 |
IOnlineSession | AddOnCreateSessionCompleteDelegate_Handle() | 添加会话创建完成时广播的委托。 |
IOnlineSession | ClearOnCreateSessionCompleteDelegate_Handle() | 删除已经添加的委托。 |