Unreal Engine AActor
Unreal Engine中的AActor是继承自UObject的世界对象基类,代表游戏场景中可放置的实体(如角色、道具、触发器)。核心特性包括: 1️⃣ 变换信息:支持位置/旋转/缩放控制 2️⃣ 组件系统:通过ActorComponent(如网格、音效组件)扩展功能 3️⃣ 生命周期管理:提供BeginPlay/Tick/EndPlay等事件回调 4️⃣ 碰撞与网络:支持物理交互和多人游戏同步
·
Unreal
🎮 Unreal Engine - AActor
🏷 定义
- AActor 是 继承自 UObject 的世界对象基类。
- 表示 游戏世界中可放置的对象,可拥有位置、旋转、缩放等变换信息。
- 支持组件组合,可通过 ActorComponent 添加功能(如渲染、碰撞、音效)。
- 是 场景中所有可交互对象(如玩家、NPC、道具、触发器)的核心类。
🧩 类继承关系
UObject
└── AActor
├── APawn
├── ACharacter
├── AVolume
└── ... 其他 Actor 派生类
- UObject:基础对象类
- AActor:世界中可放置对象
- APawn:可被玩家或 AI 控制的 Actor
- ACharacter:带有移动组件和碰撞的 Pawn
- AVolume:体积类 Actor,如触发区域
⚙️ 关键特性
- 变换信息(Transform)
- 拥有位置(Location)、旋转(Rotation)、缩放(Scale)
- 可通过蓝图或 C++ 控制对象移动、旋转
- 组件组合(Component System)
- Actor 可以附加多个 ActorComponent
- 常用组件:
UStaticMeshComponent
:网格渲染USkeletalMeshComponent
:骨骼网格UAudioComponent
:声音播放UCameraComponent
:摄像机
- 生命周期管理
- 核心回调:
BeginPlay()
:Actor 开始游戏或被生成时调用Tick(float DeltaTime)
:每帧更新EndPlay()
:Actor 被销毁或关卡结束时调用
- 支持动态生成、复制、销毁
- 核心回调:
- 碰撞与物理
- Actor 可拥有碰撞体(Collision Component)
- 支持事件绑定:
OnActorBeginOverlap
OnActorEndOverlap
OnActorHit
- 网络与复制(Replication)
- Actor 支持在客户端/服务器间同步
- 通过
bReplicates
和ReplicateMovement
控制复制行为
📝 使用方法
1. 创建 Actor
// 生成 Actor
FVector SpawnLocation(0.f, 0.f, 100.f);
FRotator SpawnRotation(0.f, 0.f, 0.f);
AMyActor* MyActor = GetWorld()->SpawnActor<AMyActor>(AMyActor::StaticClass(), SpawnLocation, SpawnRotation);
2. 生命周期回调
// MyActor.cpp
void AMyActor::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp, Warning, TEXT("Actor has begun play"));
}
void AMyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
// 每帧逻辑
}
3. 组件绑定示例
// 头文件
UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* MeshComponent;
// CPP文件构造函数
MeshComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MeshComponent"));
RootComponent = MeshComponent;
📚 常见子类与用途
类 | 用途 |
---|---|
APawn |
可被玩家或 AI 控制的 Actor |
ACharacter |
带移动组件和碰撞的 Pawn,用于玩家角色 |
AVolume |
空间体积 Actor,用于触发逻辑或物理检测 |
ATriggerVolume |
继承自 AVolume,用于区域触发事件 |
ALight |
灯光 Actor |
ACameraActor |
摄像机 Actor |
📦 小结
- AActor = 世界中可放置的对象基类
- ✅ 拥有位置、旋转、缩放(Transform)
- ✅ 可组合多个组件扩展功能
- ✅ 支持生命周期回调、碰撞事件和网络复制
- ✅ 常用作玩家、NPC、道具、触发器等所有可交互对象的基类
更多推荐
所有评论(0)