在虚幻引擎中,存在众多常见的父类,它们为游戏开发者提供了丰富的功能和强大的扩展性。本篇技术博客将重点介绍几个常见的父类,并通过案例演示它们的用法。
一、概述
虚幻引擎中有许多常用的父类,它们提供了各种功能,用于创建游戏对象、处理输入、管理游戏状态等。以下是一些常用的虚幻引擎父类:
-
AActor(Actor类):表示在虚拟场景中的一个对象。所有在游戏中出现的物体都是Actor的子类,包括玩家角色、道具、敌人等。
-
UObject:是所有虚幻对象的基类。几乎所有的虚幻引擎类都是UObject或其子类。
-
UActorComponent:表示可以被附加到Actor上的组件,用于添加额外的功能或属性。例如,MeshComponent用于处理渲染,AudioComponent用于处理声音等。
-
UGameInstance:在整个游戏实例中保持持久性数据和状态的类,通常用于保存全局性的信息。
-
UUserWidget:用于创建用户界面的基类,通过蓝图和代码可以创建各种界面元素。
-
UInputComponent:用于处理输入的组件,可以附加到Actor或Pawn上,用于响应玩家的键盘、鼠标或手柄输入。
-
UGameplayStatics:提供了在游戏中执行各种通用操作的静态类,包括生成粒子效果、播放声音等。
-
AGameSession:处理游戏会话的类,用于管理玩家连接、处理会话状态等。
-
APlayerController:控制玩家输入和视图,处理与玩家直接互动的逻辑。
-
APlayerState:表示玩家的状态,包括分数、生命等信息。
这只是虚幻引擎中一小部分常用父类的示例。根据游戏的需求,还有许多其他的父类可供使用。开发者通常会根据具体情况选择合适的父类来构建游戏对象和逻辑。
二、案例
1. AActor - Actor类
AActor
是虚幻引擎中所有场景中物体的基类,包括角色、道具、环境物体等。它提供了物体的基本功能,如位置、旋转、碰撞等。
案例1:创建一个简单的可互动的物体
// MyInteractableActor.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyInteractableActor.generated.h"
UCLASS()
class MYPROJECT_API AMyInteractableActor : public AActor
{
GENERATED_BODY()
public:
// 构造函数
AMyInteractableActor();
// 当玩家与物体交互时调用的函数
UFUNCTION(BlueprintCallable, Category = "Interaction")
void Interact();
};
// MyInteractableActor.cpp
#include "MyInteractableActor.h"
AMyInteractableActor::AMyInteractableActor()
{
// 设置物体可以被点击
SetActorEnableCollision(true);
}
void AMyInteractableActor::Inter