9 namespace droid.Runtime.Utilities.Structs {
14 [CreateAssetMenu(fileName =
"SimulatorConfiguration",
15 menuName = ScriptableObjectMenuPath._ScriptableObjectMenuPath +
"SimulatorConfiguration",
20 [Header(
"Performance (Disable for faster serialisation, but with loss of functionality)")]
22 bool _always_serialise_unobservables =
true;
24 [SerializeField]
bool _always_serialise_individual_observables =
true;
26 [SerializeField]
bool _always_serialise_aggregated_float_array =
true;
28 [Header(
"Graphics")] [SerializeField]
bool _apply_resolution_settings =
false;
30 [SerializeField]
bool _optimiseWindow_for_speed =
false;
32 [SerializeField]
bool _apply_quality_settings =
false;
34 [SerializeField] [Range(1, 9999)]
int _height = 500;
36 [SerializeField] [Range(1, 9999)]
int _width = 500;
37 [SerializeField] [Range(1, 4)]
int _quality_level = 1;
38 [SerializeField] [Range(0, 4)]
int _v_sync_count = 0;
39 [SerializeField]
bool _full_screen =
false;
40 [SerializeField]
bool _resizable_window =
true;
41 [SerializeField] ColorSpace _color_space = ColorSpace.Linear;
45 [Header(
"Simulation")]
58 [Header(
"Connection")]
60 string _ip_address =
"localhost";
66 float _max_reply_interval = 0;
72 int _num_of_environments = 0;
79 [SerializeField]
bool _replay_reaction_in_skips;
86 int _reset_iterations = 1;
106 int _target_frame_rate = -1;
114 float _time_scale = 1;
119 [Header(
"Experimental (Warning, it is important to read docs before use!)")]
121 bool _update_fixed_time_scale =
false;
128 this.FullScreen =
false;
129 this.QualityLevel = 1;
131 this.TargetFrameRate = -1;
135 this.ResetIterations = 1;
136 this.MaxReplyInterval = 0;
137 this.NumOfEnvironments = 1;
138 this.ResizableWindow =
true;
139 this.ColorSpace = ColorSpace.Linear;
143 #region Getter Setters 147 public int FrameSkips {
148 get {
return this._frame_skips; }
151 this._frame_skips = value;
158 public int ResetIterations {
159 get {
return this._reset_iterations; }
162 this._reset_iterations = value;
171 get {
return this._simulation_type; }
172 set { this._simulation_type = value; }
178 public bool ApplyResolutionSettings {
179 get {
return this._apply_resolution_settings; }
180 set { this._apply_resolution_settings = value; }
186 public bool ApplyQualitySettings {
187 get {
return this._apply_quality_settings; }
188 set { this._apply_quality_settings = value; }
191 public Boolean ResizableWindow {
192 get {
return this._resizable_window; }
193 set { this._resizable_window = value; }
196 public ColorSpace ColorSpace {
get {
return this._color_space; }
set { this._color_space = value; } }
201 public int VSyncCount {
get {
return this._v_sync_count = 0; }
set { this._v_sync_count = value; } }
206 get {
return this._width; }
217 get {
return this._height; }
220 this._height = value;
227 public bool FullScreen {
get {
return this._full_screen; }
set { this._full_screen = value; } }
231 public int NumOfEnvironments {
232 get {
return this._num_of_environments; }
233 set { this._num_of_environments = value; }
238 public int TargetFrameRate {
239 get {
return this._target_frame_rate; }
242 this._target_frame_rate = value;
249 public int QualityLevel {
250 get {
return this._quality_level; }
252 if (value >= 1 && value <= 4) {
253 this._quality_level = value;
260 public float TimeScale {
261 get {
return this._time_scale; }
264 this._time_scale = value;
271 public float MaxReplyInterval {
272 get {
return this._max_reply_interval; }
273 set { this._max_reply_interval = value; }
279 get {
return this._frame_finishes; }
280 set { this._frame_finishes = value; }
286 get {
return this._step_execution_phase; }
287 set { this._step_execution_phase = value; }
293 public bool UpdateFixedTimeScale {
294 get {
return this._update_fixed_time_scale; }
295 set { this._update_fixed_time_scale = value; }
298 public Boolean AlwaysSerialiseAggregatedFloatArray {
299 get {
return this._always_serialise_aggregated_float_array; }
300 set { this._always_serialise_aggregated_float_array = value; }
306 public bool AlwaysSerialiseUnobservables {
307 get {
return this._always_serialise_unobservables; }
308 set { this._always_serialise_unobservables = value; }
314 public bool AlwaysSerialiseIndividualObservables {
315 get {
return this._always_serialise_individual_observables; }
316 set { this._always_serialise_individual_observables = value; }
322 public bool ReplayReactionInSkips {
323 get {
return this._replay_reaction_in_skips; }
324 set { this._replay_reaction_in_skips = value; }
330 public Int32 Port {
get {
return this._port; }
set { this._port = value; } }
334 public String IpAddress {
get {
return this._ip_address; }
set { this._ip_address = value; } }
336 public Boolean OptimiseWindowForSpeed {
337 get {
return this._optimiseWindow_for_speed; }
338 set { this._optimiseWindow_for_speed = value; }
Contains everything relevant to configuring simulation environments engine specific settings ...
FrameFinishes
Determines where in the monobehaviour cycle a frame/step is finished
SimulationType
Determines the discrete timesteps of the simulation environment.