CARLA
 
载入中...
搜索中...
未找到
MoveAssetsCommandlet.h
浏览该文件的文档.
1// Copyright (c) 2019 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#pragma once
8//这是预处理指令
9#include "Carla/OpenDrive/OpenDriveActor.h"//这是将Carla/OpenDrive/OpenDriveActor.h头文件包含进来。这意味着当前文件可能会使用到OpenDriveActor.h中定义的类、函数或者其他类型。
10#include "Commandlets/Commandlet.h"//这表明MoveAssetsCommandlet类可能是从Commandlet类派生而来或者使用了Commandlet类中的功能。
11#include "Runtime/Engine/Classes/Engine/ObjectLibrary.h"//包含ObjectLibrary.h头文件,这可能是因为MoveAssetsCommandlet类需要使用ObjectLibrary类的功能。
12
13#if WITH_EDITORONLY_DATA
14#include "AssetRegistry/Public/AssetRegistryModule.h"//AssetRegistryModule可能用于在编辑器中管理资产注册表相关的功能。
15#include "Developer/AssetTools/Public/AssetToolsModule.h"//AssetToolsModule可能提供了一些在编辑器中操作资产的工具函数或者类。
16#endif // WITH_EDITORONLY_DATA//表示条件编译块结束
17#include "MoveAssetsCommandlet.generated.h"//这是一个自动生成的头文件(通常由虚幻引擎的代码生成工具生成)
18
19///包含 “包参数” 的结构体,
20///用于在调用此命令行工具时存储已解析的参数。
21USTRUCT()
22struct CARLA_API FMovePackageParams
23{
24 GENERATED_USTRUCT_BODY()
25
26 FString Name;
27
28 TArray<FString> MapNames;
29};
30
31UCLASS()
33{
34 GENERATED_BODY()
35
36public:
37
38 /// 默认构造函数.
40#if WITH_EDITORONLY_DATA
41
42 /// 解析通过 @a InParams 提供的命令行参数。
43 ///要解析的参数是包名称
44 ///和以字符串形式连接在一起的地图名称列表。
45 FMovePackageParams ParseParams(const FString &InParams) const;
46
47 /// 将地图中包含的所有资产从 @a SrcPath 移动到 @a DestPath
48 void MoveAssetsFromMapForSemanticSegmentation(const FString &PackageName, const FString &MapName);
49
50 /// 将在一个 “包参数” 中列出的所有地图的网格移动
51 void MoveAssets(const FMovePackageParams &PackageParams);
52
53public:
54
55 ///主方法和命令行工具的入口,
56 ///以 @a Params 作为输入参数
57 virtual int32 Main(const FString &Params) override;
58
59#endif // WITH_EDITORONLY_DATA
60
61private:
62
63 /// 以下数据结构被声明为类成员,
64 ///并使用 UPROPERTY 宏来避免被虚幻引擎 4 进行垃圾回收。
65
66介绍一下 UPROPERTY 宏的作用和使用方法
67数据结构如何避免被 UE4 进行垃圾回收
68推荐一些有关 UE4 数据结构的教程
69 /// 从任何对象库中加载资产
70 UPROPERTY()
71 TArray<FAssetData> AssetDatas;
72
73 /// 从任何对象库中加载地图
74 UPROPERTY()
75 TArray<FAssetData> MapContents;
76 /// 用于在对象库中加载资产。
77 ///已加载的数据存储在 “资产数据” 中。
78 UPROPERTY()
79 UObjectLibrary *AssetsObjectLibrary;
80};
包含 “包参数” 的结构体, 用于在调用此命令行工具时存储已解析的参数。