CARLA
Loading...
Searching...
No Matches
CarlaGameInstance.h
Go to the documentation of this file.
1// Copyright (c) 2026 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
12
14#include <carla/rpc/MapLayer.h>
17
18#include <util/ue-header-guard-begin.h>
19#include "Engine/GameInstance.h"
20#include <util/ue-header-guard-end.h>
21
22#include "CarlaGameInstance.generated.h"
23
24class UCarlaSettings;
25
26/// The game instance contains elements that must be kept alive in between
27/// levels. It is instantiate once per game.
28UCLASS()
29class CARLA_API UCarlaGameInstance : public UGameInstance
30{
31 GENERATED_BODY()
32
33public:
34
36
38
40 {
41 check(CarlaSettings != nullptr);
42 return *CarlaSettings;
43 }
44
46 {
47 check(CarlaSettings != nullptr);
48 return *CarlaSettings;
49 }
50
51 // Extra overload just for blueprints.
52 UFUNCTION(BlueprintCallable)
53 UCarlaSettings *GetCARLASettings()
54 {
55 return CarlaSettings;
56 }
57
58 UFUNCTION(BlueprintCallable)
59 UCarlaEpisode *GetCarlaEpisode()
60 {
61 return CarlaEngine.GetCurrentEpisode();
62 }
63
65 {
66 CarlaEngine.NotifyInitGame(GetCarlaSettings());
67 }
68
70 {
71 CarlaEngine.NotifyBeginEpisode(Episode);
72 }
73
75 {
76 CarlaEngine.NotifyEndEpisode();
77 }
78
79 const FCarlaServer &GetServer() const
80 {
81 return CarlaEngine.GetServer();
82 }
83
85 {
86 return CarlaEngine.GetServer();
87 }
88
91 {
92 GenerationParameters = Parameters;
93 }
94
97 {
98 return GenerationParameters;
99 }
100
101 UFUNCTION(Category = "Carla Game Instance", BlueprintCallable)
102 void SetMapLayer(int32 MapLayer)
103 {
104 CurrentMapLayer = MapLayer;
105 }
106
107 UFUNCTION(Category = "Carla Game Instance", BlueprintCallable)
108 int32 GetCurrentMapLayer() const
109 {
110 return CurrentMapLayer;
111 }
112
114 {
115 return &CarlaEngine;
116 }
117
118private:
119
120 UPROPERTY(Category = "CARLA Settings", EditAnywhere)
121 UCarlaSettings *CarlaSettings = nullptr;
122
123 FCarlaEngine CarlaEngine;
124
125 UPROPERTY()
126 ACarlaRecorder *Recorder = nullptr;
127
128 carla::rpc::OpendriveGenerationParameters GenerationParameters;
129
130 UPROPERTY(Category = "CARLA Game Instance", EditAnywhere)
131 int32 CurrentMapLayer = static_cast<int32>(carla::rpc::MapLayer::All);
132
133 UPROPERTY()
134 FString _MapPath;
135
136};
Recorder for the simulation.
A simulation episode.
The game instance contains elements that must be kept alive in between levels.
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)
Global settings for CARLA.
UPROPERTY(Category="Quality Settings/Epic", BlueprintReadOnly, EditAnywhere, config, DisplayName="Road Materials List for EPIC Quality") TArray< FStaticMaterial > EpicRoadMaterials
EPIC quality Road Materials.
This file contains definitions of common data structures used in traffic manager.
Seting for map generation from opendrive without additional geometry.