比较提交
合并到: unity-tech-cn:main
unity-tech-cn:/main
unity-tech-cn:/readback_mode
unity-tech-cn:/fix-editor-pause
unity-tech-cn:/docs
unity-tech-cn:/format
unity-tech-cn:/dr-test1
unity-tech-cn:/fix-compile
unity-tech-cn:/fix-links
unity-tech-cn:/fix_startup_exception
unity-tech-cn:/fix-docs
unity-tech-cn:/fix_label_id_report
unity-tech-cn:/update-setup-steps
unity-tech-cn:/labeler_mock
unity-tech-cn:/publish-fix
unity-tech-cn:/result_visualization
unity-tech-cn:/labeler_mock_mb
unity-tech-cn:/labeler_mock_on_camera
unity-tech-cn:/0.1.0-staging
unity-tech-cn:/dr-test2
unity-tech-cn:/release_cleanup
unity-tech-cn:/RC_0.2.0-preview.1
unity-tech-cn:/aisv614_0.2.0
unity-tech-cn:/aisv614_fix
unity-tech-cn:/aisv647_visualizations
unity-tech-cn:/RC-0.2.0-preview.1
unity-tech-cn:/fix_seg_colors
unity-tech-cn:/test
unity-tech-cn:/0.3.0-staging
unity-tech-cn:/aisv565_bbox3d
unity-tech-cn:/aisv749_viz_mem_leak_bug
unity-tech-cn:/aisv754_seg_alpha_bug
unity-tech-cn:/test_request_tracking_completion
unity-tech-cn:/test_new_versions
unity-tech-cn:/usim-randomization
unity-tech-cn:/with_cloud_tests
unity-tech-cn:/0.2.0-staging
unity-tech-cn:/parameter-bahaviours
unity-tech-cn:/upgrade_deps
unity-tech-cn:/0.4.0-staging
unity-tech-cn:/0.5.0-staging-2020.1
unity-tech-cn:/0.5.0-staging
unity-tech-cn:/resint_updates
unity-tech-cn:/tutorial-spelling-fix
unity-tech-cn:/priyesh-urp-dist-render
unity-tech-cn:/multiple-perception-cameras
unity-tech-cn:/pre_release_tests_nov2020
unity-tech-cn:/0.6.0-staging
unity-tech-cn:/fix_performance_tests
unity-tech-cn:/manual_capture
unity-tech-cn:/fod_generator_randomization_changes
unity-tech-cn:/multipleCameras
unity-tech-cn:/Labelbug1101
unity-tech-cn:/replace_index_md
unity-tech-cn:/depth_occlusion
unity-tech-cn:/0.8.0-preview.1_staging
unity-tech-cn:/validation-tool
unity-tech-cn:/addressables-test
unity-tech-cn:/int_tests_on_hdrp
unity-tech-cn:/keypoint_self_occlusion
unity-tech-cn:/seg_opacity
unity-tech-cn:/foreground_object_bounds_normalization
unity-tech-cn:/generic-asset-sources
unity-tech-cn:/local-position-labeler
unity-tech-cn:/pyrception-integration
unity-tech-cn:/fix_sampler_rounding_issue
unity-tech-cn:/h-i
unity-tech-cn:/0.7.0-staging
unity-tech-cn:/Released-0.6.0-preview.1
unity-tech-cn:/moved-from-attribute
unity-tech-cn:/frontpage_shuffle
unity-tech-cn:/coco_export
unity-tech-cn:/public-spec
unity-tech-cn:/fix-3Dexception-typo
unity-tech-cn:/feat-light-randomizer
unity-tech-cn:/schema-0.1.0
unity-tech-cn:/data-cap-update
unity-tech-cn:/0.8.0.preview.4_staging
unity-tech-cn:/faq-page
unity-tech-cn:/orthographic-camera-metadata
unity-tech-cn:/update-docs-0.8.0.preview.4
unity-tech-cn:/priyesh-cloudrendering-test
unity-tech-cn:/Release_0.8.0-preview.4
unity-tech-cn:/tutorial_patch
unity-tech-cn:/add_imageLink_field
unity-tech-cn:/fix_label_config_editor_indexing
unity-tech-cn:/coco_perception_output_hybrid
unity-tech-cn:/fxaa-clarification
unity-tech-cn:/no_editor_coverage
unity-tech-cn:/keypoint_self_occlusion_2020_3
unity-tech-cn:/for_vulkan_mem_test
unity-tech-cn:/solo_support
unity-tech-cn:/fix_multi_cam
unity-tech-cn:/randomizer-serialization-update
unity-tech-cn:/semantic_shader_tests
unity-tech-cn:/revert-sample-scene
unity-tech-cn:/package-analytics
unity-tech-cn:/github-action
unity-tech-cn:/fix-one-extra-frame-before-scenario-starts
unity-tech-cn:/scene_gen
unity-tech-cn:/0.9.0.preview.1_staging
unity-tech-cn:/tag-RC-0.9.0.preview.2
unity-tech-cn:/remove-usim-from-docs
unity-tech-cn:/docs/fix-readme-image-names
unity-tech-cn:/fix-links/jonh
unity-tech-cn:/addressables-test/scheduledcapture
unity-tech-cn:/orthographic-camera-metadata/additions
unity-tech-cn:/github-action/test
拉取从: unity-tech-cn:package-analytics
unity-tech-cn:/main
unity-tech-cn:/readback_mode
unity-tech-cn:/fix-editor-pause
unity-tech-cn:/docs
unity-tech-cn:/format
unity-tech-cn:/dr-test1
unity-tech-cn:/fix-compile
unity-tech-cn:/fix-links
unity-tech-cn:/fix_startup_exception
unity-tech-cn:/fix-docs
unity-tech-cn:/fix_label_id_report
unity-tech-cn:/update-setup-steps
unity-tech-cn:/labeler_mock
unity-tech-cn:/publish-fix
unity-tech-cn:/result_visualization
unity-tech-cn:/labeler_mock_mb
unity-tech-cn:/labeler_mock_on_camera
unity-tech-cn:/0.1.0-staging
unity-tech-cn:/dr-test2
unity-tech-cn:/release_cleanup
unity-tech-cn:/RC_0.2.0-preview.1
unity-tech-cn:/aisv614_0.2.0
unity-tech-cn:/aisv614_fix
unity-tech-cn:/aisv647_visualizations
unity-tech-cn:/RC-0.2.0-preview.1
unity-tech-cn:/fix_seg_colors
unity-tech-cn:/test
unity-tech-cn:/0.3.0-staging
unity-tech-cn:/aisv565_bbox3d
unity-tech-cn:/aisv749_viz_mem_leak_bug
unity-tech-cn:/aisv754_seg_alpha_bug
unity-tech-cn:/test_request_tracking_completion
unity-tech-cn:/test_new_versions
unity-tech-cn:/usim-randomization
unity-tech-cn:/with_cloud_tests
unity-tech-cn:/0.2.0-staging
unity-tech-cn:/parameter-bahaviours
unity-tech-cn:/upgrade_deps
unity-tech-cn:/0.4.0-staging
unity-tech-cn:/0.5.0-staging-2020.1
unity-tech-cn:/0.5.0-staging
unity-tech-cn:/resint_updates
unity-tech-cn:/tutorial-spelling-fix
unity-tech-cn:/priyesh-urp-dist-render
unity-tech-cn:/multiple-perception-cameras
unity-tech-cn:/pre_release_tests_nov2020
unity-tech-cn:/0.6.0-staging
unity-tech-cn:/fix_performance_tests
unity-tech-cn:/manual_capture
unity-tech-cn:/fod_generator_randomization_changes
unity-tech-cn:/multipleCameras
unity-tech-cn:/Labelbug1101
unity-tech-cn:/replace_index_md
unity-tech-cn:/depth_occlusion
unity-tech-cn:/0.8.0-preview.1_staging
unity-tech-cn:/validation-tool
unity-tech-cn:/addressables-test
unity-tech-cn:/int_tests_on_hdrp
unity-tech-cn:/keypoint_self_occlusion
unity-tech-cn:/seg_opacity
unity-tech-cn:/foreground_object_bounds_normalization
unity-tech-cn:/generic-asset-sources
unity-tech-cn:/local-position-labeler
unity-tech-cn:/pyrception-integration
unity-tech-cn:/fix_sampler_rounding_issue
unity-tech-cn:/h-i
unity-tech-cn:/0.7.0-staging
unity-tech-cn:/Released-0.6.0-preview.1
unity-tech-cn:/moved-from-attribute
unity-tech-cn:/frontpage_shuffle
unity-tech-cn:/coco_export
unity-tech-cn:/public-spec
unity-tech-cn:/fix-3Dexception-typo
unity-tech-cn:/feat-light-randomizer
unity-tech-cn:/schema-0.1.0
unity-tech-cn:/data-cap-update
unity-tech-cn:/0.8.0.preview.4_staging
unity-tech-cn:/faq-page
unity-tech-cn:/orthographic-camera-metadata
unity-tech-cn:/update-docs-0.8.0.preview.4
unity-tech-cn:/priyesh-cloudrendering-test
unity-tech-cn:/Release_0.8.0-preview.4
unity-tech-cn:/tutorial_patch
unity-tech-cn:/add_imageLink_field
unity-tech-cn:/fix_label_config_editor_indexing
unity-tech-cn:/coco_perception_output_hybrid
unity-tech-cn:/fxaa-clarification
unity-tech-cn:/no_editor_coverage
unity-tech-cn:/keypoint_self_occlusion_2020_3
unity-tech-cn:/for_vulkan_mem_test
unity-tech-cn:/solo_support
unity-tech-cn:/fix_multi_cam
unity-tech-cn:/randomizer-serialization-update
unity-tech-cn:/semantic_shader_tests
unity-tech-cn:/revert-sample-scene
unity-tech-cn:/package-analytics
unity-tech-cn:/github-action
unity-tech-cn:/fix-one-extra-frame-before-scenario-starts
unity-tech-cn:/scene_gen
unity-tech-cn:/0.9.0.preview.1_staging
unity-tech-cn:/tag-RC-0.9.0.preview.2
unity-tech-cn:/remove-usim-from-docs
unity-tech-cn:/docs/fix-readme-image-names
unity-tech-cn:/fix-links/jonh
unity-tech-cn:/addressables-test/scheduledcapture
unity-tech-cn:/orthographic-camera-metadata/additions
unity-tech-cn:/github-action/test
此合并请求有变更与目标分支冲突。
/TestProjects/PerceptionHDRP/Packages/manifest.json
/TestProjects/PerceptionHDRP/Packages/packages-lock.json
/com.unity.perception/Tests/Runtime/Randomization/ScenarioTests/ScenarioTests.cs
/com.unity.perception/Runtime/Randomization/Scenarios/ScenarioBase.cs
2 次代码提交
作者 | SHA1 | 备注 | 提交日期 |
---|---|---|---|
Aryan Mann | 0f5df9bf | finished engine analytics implementation v1 | 3 年前 |
Aryan Mann | 65d2c69b | draft 1 of engine analytics | 3 年前 |
共有 11 个文件被更改,包括 638 次插入 和 24 次删除
-
2TestProjects/PerceptionHDRP/Packages/manifest.json
-
7TestProjects/PerceptionHDRP/Packages/packages-lock.json
-
19com.unity.perception/Runtime/Randomization/Scenarios/ScenarioBase.cs
-
210com.unity.perception/Tests/Runtime/Randomization/ScenarioTests/ScenarioTests.cs
-
3com.unity.perception/Runtime/PerceptionEngineAnalytics.cs.meta
-
336com.unity.perception/Runtime/PerceptionEngineAnalytics.cs
-
50com.unity.perception/Tests/Runtime/Randomization/ScenarioTests/AllMembersAndParametersTestRandomizer.cs
-
11com.unity.perception/Tests/Runtime/Randomization/ScenarioTests/AllMembersAndParametersTestRandomizer.cs.meta
-
8TestProjects/PerceptionHDRP/Assets/Scenes/SampleScene.meta
-
8TestProjects/PerceptionHDRP/Assets/StreamingAssets.meta
-
8com.unity.perception/Editor/Pyrception.meta
|
|||
fileFormatVersion: 2 |
|||
guid: 38657354e82b4c9b8370c9c55a39b1e3 |
|||
timeCreated: 1629939608 |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Reflection; |
|||
using UnityEditor; |
|||
using UnityEngine; |
|||
using UnityEngine.Analytics; |
|||
using UnityEngine.Perception.GroundTruth; |
|||
using UnityEngine.Perception.Randomization.Parameters; |
|||
using UnityEngine.Perception.Randomization.Randomizers; |
|||
using UnityEngine.Perception.Randomization.Samplers; |
|||
|
|||
namespace UnityEngine.Perception |
|||
{ |
|||
public static class PerceptionEngineAnalytics |
|||
{ |
|||
const string k_VendorKey = "unity.perception"; |
|||
const int k_MaxElementsInStruct = 100; |
|||
const int k_MaxEventsPerHour = 100; |
|||
static bool s_AllEventsRegistered; |
|||
|
|||
// Runtime Events
|
|||
static string[] allEvents => new[] { k_EventScenarioCompleted }; |
|||
const string k_EventScenarioCompleted = "perceptionScenarioCompleted"; |
|||
|
|||
#region Event: Scenario Completed
|
|||
|
|||
/// <summary>
|
|||
/// Which labelers will be identified and included in the analytics information.
|
|||
/// </summary>
|
|||
static readonly Type[] k_LabelerAllowList = new[] |
|||
{ |
|||
typeof(BoundingBox3DLabeler), typeof(BoundingBox2DLabeler), typeof(InstanceSegmentationLabeler), |
|||
typeof(KeypointLabeler), typeof(ObjectCountLabeler), typeof(SemanticSegmentationLabeler) |
|||
}; |
|||
|
|||
#region Data Structures
|
|||
|
|||
[Serializable] |
|||
public class PerceptionCameraData |
|||
{ |
|||
public string captureTriggerMode; |
|||
public int startAtFrame; |
|||
public int framesBetweenCaptures; |
|||
} |
|||
|
|||
[Serializable] |
|||
public class LabelerData |
|||
{ |
|||
public string name; |
|||
public int labelConfigCount; |
|||
public string objectFilter; |
|||
public int animationPoseCount; |
|||
|
|||
public static LabelerData FromLabeler(CameraLabeler labeler) |
|||
{ |
|||
var labelerType = labeler.GetType(); |
|||
if (!k_LabelerAllowList.Contains(labelerType)) |
|||
return null; |
|||
|
|||
var labelerData = new LabelerData() |
|||
{ |
|||
name = labeler.GetType().Name |
|||
}; |
|||
|
|||
switch (labeler) |
|||
{ |
|||
case BoundingBox3DLabeler bb3dl: |
|||
labelerData.labelConfigCount = bb3dl.idLabelConfig.labelEntries.Count; |
|||
break; |
|||
case BoundingBox2DLabeler bb2dl: |
|||
labelerData.labelConfigCount = bb2dl.idLabelConfig.labelEntries.Count; |
|||
break; |
|||
case InstanceSegmentationLabeler isl: |
|||
labelerData.labelConfigCount = isl.idLabelConfig.labelEntries.Count; |
|||
break; |
|||
case KeypointLabeler kpl: |
|||
labelerData.labelConfigCount = kpl.idLabelConfig.labelEntries.Count; |
|||
labelerData.objectFilter = kpl.objectFilter.ToString(); |
|||
labelerData.animationPoseCount = kpl.animationPoseConfigs.Count; |
|||
break; |
|||
case ObjectCountLabeler ocl: |
|||
labelerData.labelConfigCount = ocl.labelConfig.labelEntries.Count; |
|||
break; |
|||
case SemanticSegmentationLabeler ssl: |
|||
labelerData.labelConfigCount = ssl.labelConfig.labelEntries.Count; |
|||
break; |
|||
} |
|||
|
|||
return labelerData; |
|||
} |
|||
} |
|||
|
|||
[Serializable] |
|||
public class MemberData |
|||
{ |
|||
public string name; |
|||
public string value; |
|||
public string type; |
|||
} |
|||
|
|||
[Serializable] |
|||
public class ParameterField |
|||
{ |
|||
public string name; |
|||
public string distribution; |
|||
public float value = int.MinValue; |
|||
public float rangeMinimum = int.MinValue; |
|||
public float rangeMaximum = int.MinValue; |
|||
public float mean = int.MinValue; |
|||
public float stdDev = int.MinValue; |
|||
public int categoricalParameterCount = int.MinValue; |
|||
|
|||
public static ParameterField ExtractSamplerInformation(ISampler sampler, string fieldName = "value") |
|||
{ |
|||
switch (sampler) |
|||
{ |
|||
case AnimationCurveSampler _: |
|||
return new ParameterField() |
|||
{ |
|||
name = fieldName, |
|||
distribution = "AnimationCurve" |
|||
}; |
|||
case ConstantSampler cs: |
|||
return new ParameterField() |
|||
{ |
|||
name = fieldName, |
|||
distribution = "Constant", |
|||
value = cs.value |
|||
}; |
|||
case NormalSampler ns: |
|||
return new ParameterField() |
|||
{ |
|||
name = fieldName, |
|||
distribution = "Normal", |
|||
mean = ns.mean, |
|||
stdDev = ns.standardDeviation, |
|||
rangeMinimum = ns.range.minimum, |
|||
rangeMaximum = ns.range.maximum |
|||
}; |
|||
case UniformSampler us: |
|||
return new ParameterField() |
|||
{ |
|||
name = fieldName, |
|||
distribution = "Uniform", |
|||
rangeMinimum = us.range.minimum, |
|||
rangeMaximum = us.range.maximum |
|||
}; |
|||
default: |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
public static List<ParameterField> ExtractSamplersInformation(IEnumerable<ISampler> samplers, IEnumerable<string> indexToNameMapping) |
|||
{ |
|||
var samplersList = samplers.ToList(); |
|||
var indexToNameMappingList = indexToNameMapping.ToList(); |
|||
if (samplersList.Count > indexToNameMappingList.Count) |
|||
throw new Exception("Insufficient names provided for mapping ParameterFields"); |
|||
return samplersList.Select((t, i) => ExtractSamplerInformation(t, indexToNameMappingList[i])).ToList(); |
|||
} |
|||
} |
|||
|
|||
[Serializable] |
|||
public class ParameterData |
|||
{ |
|||
public string name; |
|||
public string type; |
|||
public List<ParameterField> fields; |
|||
} |
|||
|
|||
[Serializable] |
|||
public class RandomizerData |
|||
{ |
|||
public string name; |
|||
public MemberData[] members; |
|||
public ParameterData[] parameters; |
|||
|
|||
public static RandomizerData FromRandomizer(Randomizer randomizer) |
|||
{ |
|||
if (randomizer == null) |
|||
return null; |
|||
|
|||
var data = new RandomizerData() |
|||
{ |
|||
name = randomizer.GetType().Name, |
|||
}; |
|||
|
|||
var randomizerType = randomizer.GetType(); |
|||
|
|||
// Only looks for randomizers included by the Perception package.
|
|||
if (randomizerType.Namespace == null || !randomizerType.Namespace.StartsWith("UnityEngine.Perception")) |
|||
return null; |
|||
|
|||
// Naming configuration
|
|||
var vectorFieldNames = new[] { "x", "y", "z", "w" }; |
|||
var hsvaFieldNames = new[] { "hue", "saturation", "value", "alpha" }; |
|||
var rgbFieldNames = new[] { "red", "green", "blue" }; |
|||
|
|||
// Add member fields and parameters separately
|
|||
var members = new List<MemberData>(); |
|||
var parameters = new List<ParameterData>(); |
|||
foreach (var field in randomizerType.GetFields(BindingFlags.Public | BindingFlags.Instance)) |
|||
{ |
|||
var member = field.GetValue(randomizer); |
|||
var memberType = member.GetType(); |
|||
|
|||
// If member is either a categorical or numeric parameter
|
|||
if (memberType.IsSubclassOf(typeof(Parameter))) |
|||
{ |
|||
var pd = new ParameterData() |
|||
{ |
|||
name = field.Name, |
|||
type = memberType.Name, |
|||
fields = new List<ParameterField>() |
|||
}; |
|||
|
|||
// All included parameter types
|
|||
switch (member) |
|||
{ |
|||
case CategoricalParameterBase cp: |
|||
pd.fields.Add(new ParameterField() |
|||
{ |
|||
name = "values", |
|||
distribution = "Categorical", |
|||
categoricalParameterCount = cp.probabilities.Count |
|||
}); |
|||
break; |
|||
case BooleanParameter bP: |
|||
pd.fields.Add(ParameterField.ExtractSamplerInformation(bP.value)); |
|||
break; |
|||
case FloatParameter fP: |
|||
pd.fields.Add(ParameterField.ExtractSamplerInformation(fP.value)); |
|||
break; |
|||
case IntegerParameter iP: |
|||
pd.fields.Add(ParameterField.ExtractSamplerInformation(iP.value)); |
|||
break; |
|||
case Vector2Parameter v2P: |
|||
pd.fields.AddRange(ParameterField.ExtractSamplersInformation(v2P.samplers, vectorFieldNames)); |
|||
break; |
|||
case Vector3Parameter v3P: |
|||
pd.fields.AddRange(ParameterField.ExtractSamplersInformation(v3P.samplers, vectorFieldNames)); |
|||
break; |
|||
case Vector4Parameter v4P: |
|||
pd.fields.AddRange(ParameterField.ExtractSamplersInformation(v4P.samplers, vectorFieldNames)); |
|||
break; |
|||
case ColorHsvaParameter hsvaP: |
|||
pd.fields.AddRange(ParameterField.ExtractSamplersInformation(hsvaP.samplers, hsvaFieldNames)); |
|||
break; |
|||
case ColorRgbParameter rgbP: |
|||
pd.fields.AddRange(ParameterField.ExtractSamplersInformation(rgbP.samplers, rgbFieldNames)); |
|||
break; |
|||
} |
|||
|
|||
parameters.Add(pd); |
|||
} |
|||
else |
|||
{ |
|||
members.Add(new MemberData() |
|||
{ |
|||
name = field.Name, |
|||
type = memberType.FullName, |
|||
value = member.ToString() |
|||
}); |
|||
} |
|||
} |
|||
|
|||
data.members = members.ToArray(); |
|||
data.parameters = parameters.ToArray(); |
|||
return data; |
|||
} |
|||
} |
|||
|
|||
[Serializable] |
|||
public class ScenarioCompletedData |
|||
{ |
|||
public string platform; |
|||
public PerceptionCameraData perceptionCamera; |
|||
public LabelerData[] labelers; |
|||
public RandomizerData[] randomizers; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
internal static void ReportScenarioCompleted(PerceptionCamera cam, IEnumerable<Randomizer> randomizers) |
|||
{ |
|||
if (!TryRegisterEvents()) |
|||
return; |
|||
|
|||
var data = new ScenarioCompletedData(); |
|||
if (cam != null) |
|||
{ |
|||
// Perception Camera Data
|
|||
data.perceptionCamera = new PerceptionCameraData() |
|||
{ |
|||
captureTriggerMode = cam.captureTriggerMode.ToString(), |
|||
startAtFrame = cam.firstCaptureFrame, |
|||
framesBetweenCaptures = cam.framesBetweenCaptures |
|||
}; |
|||
|
|||
// Labeler Data
|
|||
data.labelers = cam.labelers |
|||
.Select(LabelerData.FromLabeler) |
|||
.Where(labeler => labeler != null).ToArray(); |
|||
} |
|||
|
|||
var randomizerList = randomizers.ToArray(); |
|||
if (randomizerList.Any()) |
|||
{ |
|||
data.randomizers = randomizerList |
|||
.Select(RandomizerData.FromRandomizer) |
|||
.Where(x => x != null).ToArray(); |
|||
} |
|||
|
|||
EditorAnalytics.SendEventWithLimit(k_EventScenarioCompleted, data); |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
static bool TryRegisterEvents() |
|||
{ |
|||
if (s_AllEventsRegistered) |
|||
return true; |
|||
|
|||
var success = true; |
|||
foreach (var eventName in allEvents) |
|||
{ |
|||
success &= EditorAnalytics.RegisterEventWithLimit(eventName, k_MaxEventsPerHour, k_MaxElementsInStruct, k_VendorKey) == AnalyticsResult.Ok; |
|||
} |
|||
|
|||
s_AllEventsRegistered = success; |
|||
|
|||
return success; |
|||
} |
|||
} |
|||
} |
|
|||
using UnityEngine.Perception.GroundTruth; |
|||
using UnityEngine.Perception.Randomization.Parameters; |
|||
using UnityEngine.Perception.Randomization.Randomizers; |
|||
using UnityEngine.Perception.Randomization.Samplers; |
|||
|
|||
namespace UnityEngine.Perception.RandomizationTests.ScenarioTests |
|||
{ |
|||
public class AllMembersAndParametersTestRandomizer: Randomizer |
|||
{ |
|||
// Members
|
|||
public bool booleanMember = false; |
|||
public int intMember = 4; |
|||
public uint uintMember = 2; |
|||
public float floatMember = 5; |
|||
public Vector2 vector2Member = new Vector2(4, 7); |
|||
public PerceptionEngineAnalytics.MemberData unsupportedMember = new PerceptionEngineAnalytics.MemberData(); |
|||
// Parameters
|
|||
public BooleanParameter booleanParam = new BooleanParameter() |
|||
{ |
|||
value = new ConstantSampler(1) |
|||
}; |
|||
public FloatParameter floatParam = new FloatParameter() |
|||
{ |
|||
value = new AnimationCurveSampler() |
|||
}; |
|||
public IntegerParameter integerParam = new IntegerParameter() |
|||
{ |
|||
value = new UniformSampler(-3, 7) |
|||
}; |
|||
public Vector2Parameter vector2Param = new Vector2Parameter() |
|||
{ |
|||
x = new ConstantSampler(2), |
|||
y = new UniformSampler(-4, 8) |
|||
}; |
|||
public Vector3Parameter vector3Param = new Vector3Parameter() |
|||
{ |
|||
x = new NormalSampler(-5, 9, 4, 2), |
|||
y = new ConstantSampler(3), |
|||
z = new AnimationCurveSampler() |
|||
}; |
|||
public Vector4Parameter vector4Param = new Vector4Parameter() |
|||
{ |
|||
x = new NormalSampler(-5, 9, 4, 2), |
|||
y = new ConstantSampler(3), |
|||
z = new AnimationCurveSampler(), |
|||
w = new UniformSampler(-12, 42) |
|||
}; |
|||
public ColorRgbCategoricalParameter colorRgbCategoricalParam = new ColorRgbCategoricalParameter(); |
|||
}; |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 5dcdd497a48d3405489861ef856a8495 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 26f408242584f494cae23179f77b81ad |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 253c8b404a216fa4898bcc0fcc5c58b1 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 586f94aeebe844666bdf7cfa6bdc9cb1 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue