CARLA
载入中...
搜索中...
未找到
Unreal
CarlaUE4
Plugins
Carla
Source
Carla
Actor
UtilActorFactory.cpp
浏览该文件的文档.
1
// Copyright (c) 2023 Computer Vision Center (CVC) at the Universitat Autonoma
2
// de Barcelona (UAB).
3
//
4
// This work is licensed under the terms of the MIT license.
5
// For a copy, see <https://opensource.org/licenses/MIT>.
6
7
#include "
UtilActorFactory.h
"
8
9
#include "
Carla/Actor/ActorBlueprintFunctionLibrary.h
"
// 包含Actor蓝图函数库,用于创建和管理Actor定义
10
#include "
Carla/Util/EmptyActor.h
"
// 包含空Actor类,用于生成不可见的Actor
11
#include "
Carla/Game/CarlaEpisode.h
"
// 包含Carla游戏环节类,用于访问游戏世界信息
12
13
// AUtilActorFactory类的方法,用于获取定义的Actor数组
14
TArray<FActorDefinition>
AUtilActorFactory::GetDefinitions
()
15
{
16
using
ABFL =
UActorBlueprintFunctionLibrary
;
// 使用别名ABFL简化UActorBlueprintFunctionLibrary的调用
17
// 使用Actor蓝图函数库创建一个通用的Actor定义
18
auto
StaticMeshDefinition = ABFL::MakeGenericDefinition(
19
TEXT(
"util"
),
// Actor类别标识
20
TEXT(
"actor"
),
// Actor子类别标识
21
TEXT(
"empty"
));
// Actor名称
22
23
// 设置Actor定义对应的类为AEmptyActor,即空Actor
24
StaticMeshDefinition.Class = AEmptyActor::StaticClass();
25
26
// 返回包含空Actor定义的数组
27
return
{ StaticMeshDefinition };
28
}
29
30
// AUtilActorFactory类的方法,用于根据给定的变换和描述生成Actor
31
FActorSpawnResult
AUtilActorFactory::SpawnActor
(
32
const
FTransform &SpawnAtTransform,
// 指定Actor生成的位置和方向
33
const
FActorDescription
&ActorDescription)
// 指定Actor的描述信息
34
{
35
using
ABFL =
UActorBlueprintFunctionLibrary
;
// 使用别名ABFL简化UActorBlueprintFunctionLibrary的调用
36
auto
*
World
= GetWorld();
// 获取当前Actor工厂所在的世界
37
if
(
World
==
nullptr
)
// 如果世界为空,则无法生成Actor
38
{
39
UE_LOG
(LogCarla, Error, TEXT(
"AUtilActorFactory: cannot spawn mesh into an empty world."
));
40
return
{};
// 返回空的Actor生成结果
41
}
42
43
// 设置Actor生成参数,覆盖碰撞处理方法,始终生成Actor
44
FActorSpawnParameters SpawnParameters;
45
SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
46
47
// 在世界中生成AEmptyActor类型的Actor
48
auto
*StaticMeshActor =
World
->SpawnActor<
AEmptyActor
>(
49
ActorDescription.
Class
, SpawnAtTransform, SpawnParameters);
50
51
// 返回Actor生成结果,包含生成的Actor指针
52
return
FActorSpawnResult
(StaticMeshActor);
53
}
ActorBlueprintFunctionLibrary.h
UE_LOG
UE_LOG(LogCarla, Log, TEXT("UActorDispatcher::Destroying actor: '%s' %x"), *Id, Actor)
World
TSharedPtr< const FActorInfo > carla::rpc::ActorState UWorld * World
Definition
CarlaActor.cpp:83
CarlaEpisode.h
EmptyActor.h
FActorSpawnResult
return FActorSpawnResult(StaticMeshActor)
UtilActorFactory.h
AEmptyActor
Definition
EmptyActor.h:19
AUtilActorFactory::GetDefinitions
TArray< FActorDefinition > GetDefinitions() final
获取静态网格体演员的定义
Definition
UtilActorFactory.cpp:14
AUtilActorFactory::SpawnActor
FActorSpawnResult SpawnActor(const FTransform &SpawnAtTransform, const FActorDescription &ActorDescription) final
在指定的位置生成一个演员
Definition
UtilActorFactory.cpp:31
UActorBlueprintFunctionLibrary
Definition
ActorBlueprintFunctionLibrary.h:32
FActorDescription
carla参与者及其所有变体的描述
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/ActorDescription.h:16
FActorDescription::Class
TSubclassOf< AActor > Class
要生成的参与者类
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/ActorDescription.h:28
FActorSpawnResult
Definition
ActorSpawnResult.h:34
制作者
1.10.0