CARLA
 
载入中...
搜索中...
未找到
CarlaGameInstance.h
浏览该文件的文档.
1// Copyright (c) 2017 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 "Engine/GameInstance.h"
10
14
16#include <carla/rpc/MapLayer.h>
19
20#include "CarlaGameInstance.generated.h"
21
22class UCarlaSettings;
23
24// The game instance contains elements that must be kept alive in between
25// levels. It is instantiate once per game.
26// 定义一个名为 UCarlaGameInstance 的类,继承自 UGameInstance,并且是一个可以在蓝图中使用的类(UCLASS)
27UCLASS()
28class CARLA_API UCarlaGameInstance : public UGameInstance
29{
30 GENERATED_BODY()
31
32public:
33
34 // 构造函数
36
37 // 析构函数
39
40 // 获取 CarlaSettings 的引用,如果 CarlaSettings 为 nullptr 会触发断言检查
42 {
43 check(CarlaSettings!= nullptr);
44 return *CarlaSettings;
45 }
46
47 // 获取 CarlaSettings 的 const 引用,如果 CarlaSettings 为 nullptr 会触发断言检查
49 {
50 check(CarlaSettings!= nullptr);
51 return *CarlaSettings;
52 }
53
54 // 额外的函数重载,用于在蓝图中调用,返回一个指向 CarlaSettings 的指针
55 UFUNCTION(BlueprintCallable)
56 UCarlaSettings *GetCARLASettings()
57 {
58 return CarlaSettings;
59 }
60
61 // 获取 CarlaEpisode 的指针,调用 CarlaEngine 的 GetCurrentEpisode 函数
62 UFUNCTION(BlueprintCallable)
63 UCarlaEpisode *GetCarlaEpisode()
64 {
65 return CarlaEngine.GetCurrentEpisode();
66 }
67
68 // 通知游戏初始化,调用 CarlaEngine 的 NotifyInitGame 函数并传递 CarlaSettings
70 {
71 CarlaEngine.NotifyInitGame(GetCarlaSettings());
72 }
73
74 // 通知开始新的游戏章节,调用 CarlaEngine 的 NotifyBeginEpisode 函数
75 void NotifyBeginEpisode(UCarlaEpisode &Episode)
76 {
77 CarlaEngine.NotifyBeginEpisode(Episode);
78 }
79
80 // 通知结束游戏章节,调用 CarlaEngine 的 NotifyEndEpisode 函数
82 {
83 CarlaEngine.NotifyEndEpisode();
84 }
85
86 // 获取 CarlaServer 的 const 引用,调用 CarlaEngine 的 GetServer 函数
87 const FCarlaServer &GetServer() const
88 {
89 return CarlaEngine.GetServer();
90 }
91
92 // 获取 CarlaServer 的引用,调用 CarlaEngine 的 GetServer 函数
94 {
95 return CarlaEngine.GetServer();
96 }
97
98 // 设置 OpendriveGenerationParameters
101 {
102 GenerationParameters = Parameters;
103 }
104
105 // 获取 OpendriveGenerationParameters 的 const 引用
108 {
109 return GenerationParameters;
110 }
111
112 // 蓝图可调用的函数,用于设置 MapLayer
113 UFUNCTION(Category = "Carla Game Instance", BlueprintCallable)
114 void SetMapLayer(int32 MapLayer)
115 {
116 CurrentMapLayer = MapLayer;
117 }
118
119 // 蓝图可调用的函数,用于获取当前的 MapLayer
120 UFUNCTION(Category = "Carla Game Instance", BlueprintCallable)
121 int32 GetCurrentMapLayer() const
122 {
123 return CurrentMapLayer;
124 }
125
126 // 获取 CarlaEngine 的指针
128 {
129 return &CarlaEngine;
130 }
131
132private:
133
134 // 一个可编辑的属性,存储 CarlaSettings 的指针,默认为 nullptr
135 UPROPERTY(Category = "CARLA Settings", EditAnywhere)
136 UCarlaSettings *CarlaSettings = nullptr;
137
138 // CarlaEngine 对象
139 FCarlaEngine CarlaEngine;
140
141 // 一个属性,存储 CarlaRecorder 的指针,默认为 nullptr
142 UPROPERTY()
143 ACarlaRecorder *Recorder = nullptr;
144
145 // 存储 OpendriveGenerationParameters 的对象
146 carla::rpc::OpendriveGenerationParameters GenerationParameters;
147
148 // 一个可编辑的属性,存储当前的 MapLayer,默认为 carla::rpc::MapLayer::All
149 UPROPERTY(Category = "CARLA Game Instance", EditAnywhere)
150 int32 CurrentMapLayer = static_cast<int32>(carla::rpc::MapLayer::All);
151
152 // 存储 MapPath 的字符串
153 UPROPERTY()
154 FString _MapPath;
155};
Recorder for the simulation
const FCarlaServer & GetServer() const
void NotifyBeginEpisode(UCarlaEpisode &Episode)
UCarlaSettings & GetCarlaSettings()
const carla::rpc::OpendriveGenerationParameters & GetOpendriveGenerationParameters() const
FCarlaEngine * GetCarlaEngine()
const UCarlaSettings & GetCarlaSettings() const
FCarlaServer & GetServer()
void SetOpendriveGenerationParameters(const carla::rpc::OpendriveGenerationParameters &Parameters)
Carla 的全局设置
UPROPERTY(Category="Quality Settings/Low", BlueprintReadOnly, EditAnywhere, config, DisplayName="Road Materials List for Low Quality") TArray< FStaticMaterial > LowRoadMaterials
低质量道路材料。使用插槽名称为道路的每个部分设置低质量的材料。
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
Seting for map generation from opendrive without additional geometry