Skip to content

Commit ab8c752

Browse files
committed
merge serialization array change
1 parent b2a0ef3 commit ab8c752

File tree

4 files changed

+20
-14
lines changed

4 files changed

+20
-14
lines changed

com.unity.perception/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ Upgraded capture package dependency to 0.0.10-preview.24. This fixes an issue wh
3535

3636
Changed the JSON serialization key of Normal Sampler's standard deviation property from "standardDeviation" to "stddev".
3737

38+
Changed the JSON serialization of Randomizers in a scenario to an array of groups rather than a dictionary.
39+
3840
### Deprecated
3941

4042
### Removed

com.unity.perception/Runtime/Randomization/Scenarios/Serialization/ScenarioSerializer.cs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,20 @@ static TemplateConfigurationOptions SerializeScenarioToTemplate(ScenarioBase sce
5050
{
5151
return new TemplateConfigurationOptions
5252
{
53-
groups = SerializeRandomizers(scenario.randomizers)
53+
randomizerGroups = SerializeRandomizers(scenario.randomizers)
5454
};
5555
}
5656

57-
static Dictionary<string, Group> SerializeRandomizers(IEnumerable<Randomizer> randomizers)
57+
static List<Group> SerializeRandomizers(IEnumerable<Randomizer> randomizers)
5858
{
59-
var serializedRandomizers = new Dictionary<string, Group>();
59+
var serializedRandomizers = new List<Group>();
6060
foreach (var randomizer in randomizers)
6161
{
6262
var randomizerData = SerializeRandomizer(randomizer);
6363
if (randomizerData.items.Count == 0 && !randomizerData.state.canBeSwitchedByUser)
6464
continue;
65-
serializedRandomizers.Add(randomizer.GetType().Name, randomizerData);
65+
66+
serializedRandomizers.Add(randomizerData);
6667
}
6768
return serializedRandomizers;
6869
}
@@ -77,6 +78,7 @@ static Group SerializeRandomizer(Randomizer randomizer)
7778
};
7879

7980
var fields = randomizer.GetType().GetFields();
81+
randomizerData.randomizerId = randomizer.GetType().Name;
8082
foreach (var field in fields)
8183
{
8284
if (field.FieldType.IsSubclassOf(typeof(Randomization.Parameters.Parameter)))
@@ -214,21 +216,21 @@ static void DeserializeConstants(ScenarioConstants constants, JObject constantsD
214216

215217
static void DeserializeTemplateIntoScenario(ScenarioBase scenario, TemplateConfigurationOptions template)
216218
{
217-
DeserializeRandomizers(scenario.randomizers, template.groups);
219+
DeserializeRandomizers(scenario.randomizers, template.randomizerGroups);
218220
}
219221

220-
static void DeserializeRandomizers(IEnumerable<Randomizer> randomizers, Dictionary<string, Group> groups)
222+
static void DeserializeRandomizers(IEnumerable<Randomizer> randomizers, List<Group> groups)
221223
{
222224
var randomizerTypeMap = new Dictionary<string, Randomizer>();
223225
foreach (var randomizer in randomizers)
224226
randomizerTypeMap.Add(randomizer.GetType().Name, randomizer);
225227

226-
foreach (var randomizerPair in groups)
228+
foreach (var randomizerData in groups)
227229
{
228-
if (!randomizerTypeMap.ContainsKey(randomizerPair.Key))
230+
if (!randomizerTypeMap.ContainsKey(randomizerData.randomizerId))
229231
continue;
230-
var randomizer = randomizerTypeMap[randomizerPair.Key];
231-
DeserializeRandomizer(randomizer, randomizerPair.Value);
232+
var randomizer = randomizerTypeMap[randomizerData.randomizerId];
233+
DeserializeRandomizer(randomizer, randomizerData);
232234
}
233235
}
234236

com.unity.perception/Runtime/Randomization/Scenarios/Serialization/SerializationStructures.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ interface IScalarValue { }
1616
#region GroupedObjects
1717
class TemplateConfigurationOptions
1818
{
19-
public Dictionary<string, Group> groups = new Dictionary<string, Group>();
19+
public List<Group> randomizerGroups = new List<Group>();
2020
}
2121

2222
class StandardMetadata
@@ -40,6 +40,7 @@ class Limits
4040

4141
class Group
4242
{
43+
public string randomizerId;
4344
public StandardMetadata metadata = new StandardMetadata();
4445
public RandomizerStateData state = null;
4546
[JsonConverter(typeof(GroupItemsConverter))]

com.unity.perception/Tests/Runtime/Randomization/ScenarioTests/Resources/SampleScenarioConfiguration.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
"randomSeed": 539662031
88
},
99
"randomizers": {
10-
"groups": {
11-
"RotationRandomizer": {
10+
"randomizerGroups": [
11+
{
12+
"randomizerId": "RotationRandomizer",
1213
"metadata": {
1314
"name": "",
1415
"description": "",
@@ -71,6 +72,6 @@
7172
}
7273
}
7374
}
74-
}
75+
]
7576
}
7677
}

0 commit comments

Comments
 (0)