├── .gitignore
├── Assets
├── WorkObjectData.cs.meta
├── WorkObjectManager.cs.meta
├── WorkObjectSystem.cs.meta
├── WorkObjectSmarterSystem.cs.meta
├── WorkObjectWithoutUpdate.cs.meta
├── WorkObjectSmarterNoCopySystem.cs.meta
├── Scenes.meta
├── Scenes
│ ├── SampleScene.unity.meta
│ └── SampleScene.unity
├── Tests.meta
├── NewAssembly.asmdef.meta
├── Resources.meta
├── Tests
│ ├── Tests.asmdef.meta
│ ├── HybridPerformanceTest.cs.meta
│ ├── Tests.asmdef
│ └── HybridPerformanceTest.cs
├── InitTestScene637117790264092380.unity.meta
├── WorkObjectData.cs
├── WorkObject.cs.meta
├── WorkObjectManager.cs
├── WorkObject.cs
├── NewAssembly.asmdef
├── WorkObjectSystem.cs
├── WorkObjectSmarterNoCopySystem.cs
├── WorkObjectWithoutUpdate.cs
├── WorkObjectSmarterSystem.cs
└── InitTestScene637117790264092380.unity
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | Library
3 | Logs
4 | obj
5 | Packages
6 | ProjectSettings
7 | Temp
8 | *.csproj
9 | *.sln
--------------------------------------------------------------------------------
/Assets/WorkObjectData.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4827bc263d0d4350ab8c8f41f7602d47
3 | timeCreated: 1576155431
--------------------------------------------------------------------------------
/Assets/WorkObjectManager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e91941bc9bdf415aaa06c3f0186a4b89
3 | timeCreated: 1576151121
--------------------------------------------------------------------------------
/Assets/WorkObjectSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 172ea5e5275f444b93ddbdb0f35e02a5
3 | timeCreated: 1576151749
--------------------------------------------------------------------------------
/Assets/WorkObjectSmarterSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 02de5474f6a043038ad77ab9f5d59890
3 | timeCreated: 1576155448
--------------------------------------------------------------------------------
/Assets/WorkObjectWithoutUpdate.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 74a5eea271a9499990d469110d195c5d
3 | timeCreated: 1576150902
--------------------------------------------------------------------------------
/Assets/WorkObjectSmarterNoCopySystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9b3bd123333e4026af4c6a40060c7fd4
3 | timeCreated: 1576157316
--------------------------------------------------------------------------------
/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3192b39b2838240d1ae31ddc9115fa7d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9fc0d4010bbf28b4594072e72b8655ab
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tests.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ae7d56e45331a448e8290c1aebe4829f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NewAssembly.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 287f450596e674aada445037ef404919
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2bfc8dba5b7664106ac6b6ff18e62cff
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tests/Tests.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ded40f3d1ada7450d8109a96c09713eb
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/InitTestScene637117790264092380.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d7deec5405a75472d9a62b2de30037a4
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WorkObjectData.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 |
3 | public struct WorkObjectData : IComponentData
4 | {
5 | public int integer;
6 | public int timesUpdated;
7 | public float floating;
8 | public bool boolean;
9 | }
--------------------------------------------------------------------------------
/Assets/WorkObject.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d728c6d1f1ff7457280bb931ed64ded5
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tests/HybridPerformanceTest.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d297128ffbae14a2393069444d679505
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/WorkObjectManager.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | public class WorkObjectManager : MonoBehaviour
4 | {
5 | public WorkObjectWithoutUpdate[] workObjects;
6 |
7 | public void Update()
8 | {
9 | for (int i = 0; i < workObjects.Length; i++)
10 | {
11 | workObjects[i].ManualUpdate();
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Assets/WorkObject.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class WorkObject : MonoBehaviour
6 | {
7 | public int integer;
8 | public bool boolean;
9 | public float floating;
10 | public int timesUpdated;
11 |
12 | void Update()
13 | {
14 | integer += Mathf.RoundToInt((Random.value * 100));
15 | boolean = !boolean;
16 | floating += Random.value * 100;
17 | timesUpdated++;
18 | }
19 | }
--------------------------------------------------------------------------------
/Assets/NewAssembly.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "NewAssembly",
3 | "references": [
4 | "GUID:734d92eba21c94caba915361bd5ac177",
5 | "GUID:8819f35a0fc84499b990e90a4ca1911f",
6 | "GUID:d8b63aba1907145bea998dd612889d6b"
7 | ],
8 | "includePlatforms": [],
9 | "excludePlatforms": [],
10 | "allowUnsafeCode": false,
11 | "overrideReferences": false,
12 | "precompiledReferences": [],
13 | "autoReferenced": true,
14 | "defineConstraints": [],
15 | "versionDefines": [],
16 | "noEngineReferences": false
17 | }
--------------------------------------------------------------------------------
/Assets/WorkObjectSystem.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Jobs;
3 | using UnityEngine;
4 |
5 | [DisableAutoCreation]
6 | public class WorkObjectSystem : JobComponentSystem
7 | {
8 | protected override JobHandle OnUpdate(JobHandle inputDeps)
9 | {
10 | Entities.ForEach((WorkObjectWithoutUpdate wo) =>
11 | {
12 | wo.integer += Mathf.RoundToInt((Random.value * 100));
13 | wo.boolean = !wo.boolean;
14 | wo.floating += Random.value * 100;
15 | wo.timesUpdated++;
16 | }).WithoutBurst().Run();
17 | return default;
18 | }
19 | }
--------------------------------------------------------------------------------
/Assets/Tests/Tests.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Tests",
3 | "references": [
4 | "UnityEngine.TestRunner",
5 | "UnityEditor.TestRunner",
6 | "NewAssembly",
7 | "Unity.PerformanceTesting",
8 | "Unity.Entities",
9 | "Unity.Entities.Hybrid"
10 | ],
11 | "includePlatforms": [],
12 | "excludePlatforms": [],
13 | "allowUnsafeCode": false,
14 | "overrideReferences": true,
15 | "precompiledReferences": [
16 | "nunit.framework.dll"
17 | ],
18 | "autoReferenced": false,
19 | "defineConstraints": [
20 | "UNITY_INCLUDE_TESTS"
21 | ],
22 | "versionDefines": [],
23 | "noEngineReferences": false
24 | }
--------------------------------------------------------------------------------
/Assets/WorkObjectSmarterNoCopySystem.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Jobs;
3 | using Unity.Mathematics;
4 |
5 | [DisableAutoCreation]
6 | public class WorkObjectSmarterNoCopySystem : JobComponentSystem
7 | {
8 | protected override JobHandle OnUpdate(JobHandle inputDeps)
9 | {
10 | var random = new Unity.Mathematics.Random(1234);
11 | Entities.ForEach((ref WorkObjectData wod) =>
12 | {
13 | wod.integer += (int) (math.round((random.NextFloat() * 100)));
14 | wod.boolean = !wod.boolean;
15 | wod.floating += random.NextFloat() * 100;
16 | wod.timesUpdated++;
17 | }).Schedule(inputDeps).Complete();
18 |
19 | return default;
20 | }
21 | }
--------------------------------------------------------------------------------
/Assets/WorkObjectWithoutUpdate.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using UnityEngine;
3 | using Unity.Entities;
4 | using Unity.Entities.Hybrid;
5 |
6 | public class WorkObjectWithoutUpdate : MonoBehaviour, IConvertGameObjectToEntity
7 | {
8 | //`public` for hybrid system to modify.
9 | public int integer;
10 | public bool boolean;
11 | public float floating;
12 | public int timesUpdated;
13 |
14 | ///
15 | /// For the manager to call.
16 | ///
17 | public void ManualUpdate()
18 | {
19 | integer += Mathf.RoundToInt((Random.value * 100));
20 | boolean = !boolean;
21 | floating += Random.value * 100;
22 | timesUpdated++;
23 | }
24 |
25 | ///
26 | /// For the smarter system.
27 | ///
28 | public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
29 | {
30 | dstManager.AddComponent(entity);
31 | }
32 | }
--------------------------------------------------------------------------------
/Assets/WorkObjectSmarterSystem.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Jobs;
3 | using Unity.Mathematics;
4 | using UnityEngine;
5 |
6 | [DisableAutoCreation]
7 | public class WorkObjectSmarterSystem : JobComponentSystem
8 | {
9 | protected override JobHandle OnUpdate(JobHandle inputDeps)
10 | {
11 | var random = new Unity.Mathematics.Random(1234);
12 | Entities.ForEach((ref WorkObjectData wod) =>
13 | {
14 | wod.integer += (int) (math.round((random.NextFloat() * 100)));
15 | wod.boolean = !wod.boolean;
16 | wod.floating += random.NextFloat() * 100;
17 | wod.timesUpdated++;
18 | }).Schedule(inputDeps).Complete();
19 |
20 | Entities.ForEach((WorkObjectWithoutUpdate wo, in WorkObjectData wod) =>
21 | {
22 | wo.integer = wod.integer;
23 | wo.boolean = wod.boolean;
24 | wo.floating = wod.floating;
25 | wo.timesUpdated = wod.timesUpdated;
26 | }).WithoutBurst().Run();
27 |
28 | return default;
29 | }
30 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Hybrid ECS performance test
2 |
3 | Run the PlayMode Test to get result in the test log. You must run one by one as I didn't write a proper cleanup between tests. Inspired by [this thread](https://forum.unity.com/threads/my-hybrid-ecs-performance-test.792585/).
4 |
5 | - A : 250000 game objects with `Update()`.
6 | - B : Manager game object looping 250000 times in one frame to call `Update()` equivalent.
7 | - C : One ECS system iterate on 250000 entities that was generated from `ConvertToEntity` with inject mode, and modify values directly to the `MonoBehaviour` reference like in `Update()` with `Entities.ForEach`. The modified values reflected on the `GameObject`'s inspector on the scene. No Burst, no leak detection.
8 | - D : Like C but with a little more work. Added a dedicated `IComponentData` data storage on conversion for parallel calculation. Apply the calculated value by a copy. Burst on, no safety checks, in editor. No leak detection.
9 | - E : Removed the copy back step from D.
10 |
11 | ## Results
12 |
13 | All tests run on MacBook Pro Early 2015 in editor. All units in milliseconds.
14 |
15 | - A : Median:88.87 Min:83.32 Max:657.38 Avg:113.88 Std:77.03 Zeroes:0 SampleCount: 100 Sum: 11388.47
16 | - B : Median:21.48 Min:18.86 Max:48.13 Avg:23.81 Std:6.50 Zeroes:0 SampleCount: 100 Sum: 2380.65
17 | - C : Median:27.93 Min:23.71 Max:29.69 Avg:27.38 Std:1.46 Zeroes:0 SampleCount: 100 Sum: 2738.49
18 | - D : Median:24.09 Min:23.31 Max:40.47 Avg:25.19 Std:2.54 Zeroes:0 SampleCount: 100 Sum: 2518.88
19 | - E : Median:7.95 Min:6.32 Max:11.36 Avg:8.04 Std:0.57 Zeroes:0 SampleCount: 100 Sum: 804.17
20 |
21 | ## Evaluation
22 |
23 | - `Update()` is expensive.
24 | - There is a cost on using the query to assemble native array for `ForEach` from large amount of entities. Otherwise C must be around the same as B, and D should be a bit faster than B.
25 | - You better design for a one-way hybrid approach. Let `GameObject` use the calculated result stored in ECS via `EntityManager`, instead of expensive setting back value to `MonoBehaviour` that is not as cache friendly.
--------------------------------------------------------------------------------
/Assets/Tests/HybridPerformanceTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using NUnit.Framework;
5 | using Unity.Collections;
6 | using Unity.PerformanceTesting;
7 | using UnityEngine;
8 | using UnityEngine.TestTools;
9 | using Unity.Entities;
10 |
11 | namespace Tests
12 | {
13 | public class HybridPerformanceTest
14 | {
15 | const int amount = 250000;
16 |
17 | [UnityTest,Performance]
18 | public IEnumerator A()
19 | {
20 | GameObject go = null;
21 | for (int i = 0; i < amount; i++)
22 | {
23 | go = new GameObject("test", typeof(WorkObject));
24 | }
25 | yield return Measure.Frames().WarmupCount(10).MeasurementCount(100).Run();
26 | Assert.That(go.GetComponent().timesUpdated, Is.EqualTo(110));
27 | }
28 |
29 | [UnityTest,Performance]
30 | public IEnumerator B()
31 | {
32 | var wos = new WorkObjectWithoutUpdate[amount];
33 | for (int i = 0; i < amount; i++)
34 | {
35 | var go = new GameObject("test");
36 | var component = go.AddComponent();
37 | wos[i] = component;
38 | }
39 |
40 | var manager = new GameObject("manager", typeof(WorkObjectManager));
41 | manager.GetComponent().workObjects = wos;
42 |
43 | yield return Measure.Frames().WarmupCount(10).MeasurementCount(100).Run();
44 | Assert.That(wos[amount - 1].GetComponent().timesUpdated, Is.EqualTo(110));
45 | }
46 |
47 | [UnityTest,Performance]
48 | public IEnumerator C()
49 | {
50 | GameObject go = null;
51 | for (int i = 0; i < amount; i++)
52 | {
53 | go = new GameObject("test", typeof(WorkObjectWithoutUpdate));
54 | var cte = go.AddComponent();
55 | cte.ConversionMode = ConvertToEntity.Mode.ConvertAndInjectGameObject;
56 | }
57 |
58 | DefaultWorldInitialization.AddSystemsToRootLevelSystemGroups(
59 | World.DefaultGameObjectInjectionWorld,
60 | new List {typeof(WorkObjectSystem)});
61 |
62 | yield return Measure.Frames().WarmupCount(10).MeasurementCount(100).Run();
63 | Assert.That(go.GetComponent().timesUpdated, Is.EqualTo(110-1));
64 | }
65 |
66 | [UnityTest,Performance]
67 | public IEnumerator D()
68 | {
69 | GameObject go = null;
70 | for (int i = 0; i < amount; i++)
71 | {
72 | go = new GameObject("test", typeof(WorkObjectWithoutUpdate));
73 | var cte = go.AddComponent();
74 | cte.ConversionMode = ConvertToEntity.Mode.ConvertAndInjectGameObject;
75 | }
76 |
77 | DefaultWorldInitialization.AddSystemsToRootLevelSystemGroups(
78 | World.DefaultGameObjectInjectionWorld,
79 | new List {typeof(WorkObjectSmarterSystem)}); // <-------
80 |
81 | yield return Measure.Frames().WarmupCount(10).MeasurementCount(100).Run();
82 | Assert.That(go.GetComponent().timesUpdated, Is.EqualTo(110-1));
83 | }
84 |
85 | [UnityTest,Performance]
86 | public IEnumerator E()
87 | {
88 | GameObject go = null;
89 | for (int i = 0; i < amount; i++)
90 | {
91 | go = new GameObject("test", typeof(WorkObjectWithoutUpdate));
92 | var cte = go.AddComponent();
93 | cte.ConversionMode = ConvertToEntity.Mode.ConvertAndInjectGameObject;
94 | }
95 |
96 | DefaultWorldInitialization.AddSystemsToRootLevelSystemGroups(
97 | World.DefaultGameObjectInjectionWorld,
98 | new List {typeof(WorkObjectSmarterNoCopySystem)}); // <-------
99 |
100 | yield return Measure.Frames().WarmupCount(10).MeasurementCount(100).Run();
101 |
102 | var cda = World.DefaultGameObjectInjectionWorld.EntityManager.CreateEntityQuery(ComponentType
103 | .ReadOnly()).ToComponentDataArray(Allocator.TempJob);
104 | Assert.That( cda[0].timesUpdated, Is.EqualTo(110-1));
105 |
106 | cda.Dispose();
107 | }
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 705507994}
41 | m_IndirectSpecularColor: {r: 0.44657838, g: 0.49641234, b: 0.57481676, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 11
47 | m_GIWorkflowMode: 0
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 500
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 500
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 2
83 | m_PVRDenoiserTypeDirect: 0
84 | m_PVRDenoiserTypeIndirect: 0
85 | m_PVRDenoiserTypeAO: 0
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 0
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_UseShadowmask: 1
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 2
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | accuratePlacement: 0
121 | debug:
122 | m_Flags: 0
123 | m_NavMeshData: {fileID: 0}
124 | --- !u!1 &705507993
125 | GameObject:
126 | m_ObjectHideFlags: 0
127 | m_CorrespondingSourceObject: {fileID: 0}
128 | m_PrefabInstance: {fileID: 0}
129 | m_PrefabAsset: {fileID: 0}
130 | serializedVersion: 6
131 | m_Component:
132 | - component: {fileID: 705507995}
133 | - component: {fileID: 705507994}
134 | m_Layer: 0
135 | m_Name: Directional Light
136 | m_TagString: Untagged
137 | m_Icon: {fileID: 0}
138 | m_NavMeshLayer: 0
139 | m_StaticEditorFlags: 0
140 | m_IsActive: 1
141 | --- !u!108 &705507994
142 | Light:
143 | m_ObjectHideFlags: 0
144 | m_CorrespondingSourceObject: {fileID: 0}
145 | m_PrefabInstance: {fileID: 0}
146 | m_PrefabAsset: {fileID: 0}
147 | m_GameObject: {fileID: 705507993}
148 | m_Enabled: 1
149 | serializedVersion: 10
150 | m_Type: 1
151 | m_Shape: 0
152 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
153 | m_Intensity: 1
154 | m_Range: 10
155 | m_SpotAngle: 30
156 | m_InnerSpotAngle: 21.802082
157 | m_CookieSize: 10
158 | m_Shadows:
159 | m_Type: 2
160 | m_Resolution: -1
161 | m_CustomResolution: -1
162 | m_Strength: 1
163 | m_Bias: 0.05
164 | m_NormalBias: 0.4
165 | m_NearPlane: 0.2
166 | m_CullingMatrixOverride:
167 | e00: 1
168 | e01: 0
169 | e02: 0
170 | e03: 0
171 | e10: 0
172 | e11: 1
173 | e12: 0
174 | e13: 0
175 | e20: 0
176 | e21: 0
177 | e22: 1
178 | e23: 0
179 | e30: 0
180 | e31: 0
181 | e32: 0
182 | e33: 1
183 | m_UseCullingMatrixOverride: 0
184 | m_Cookie: {fileID: 0}
185 | m_DrawHalo: 0
186 | m_Flare: {fileID: 0}
187 | m_RenderMode: 0
188 | m_CullingMask:
189 | serializedVersion: 2
190 | m_Bits: 4294967295
191 | m_RenderingLayerMask: 1
192 | m_Lightmapping: 1
193 | m_LightShadowCasterMode: 0
194 | m_AreaSize: {x: 1, y: 1}
195 | m_BounceIntensity: 1
196 | m_ColorTemperature: 6570
197 | m_UseColorTemperature: 0
198 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
199 | m_UseBoundingSphereOverride: 0
200 | m_ShadowRadius: 0
201 | m_ShadowAngle: 0
202 | --- !u!4 &705507995
203 | Transform:
204 | m_ObjectHideFlags: 0
205 | m_CorrespondingSourceObject: {fileID: 0}
206 | m_PrefabInstance: {fileID: 0}
207 | m_PrefabAsset: {fileID: 0}
208 | m_GameObject: {fileID: 705507993}
209 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
210 | m_LocalPosition: {x: 0, y: 3, z: 0}
211 | m_LocalScale: {x: 1, y: 1, z: 1}
212 | m_Children: []
213 | m_Father: {fileID: 0}
214 | m_RootOrder: 1
215 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
216 | --- !u!1 &963194225
217 | GameObject:
218 | m_ObjectHideFlags: 0
219 | m_CorrespondingSourceObject: {fileID: 0}
220 | m_PrefabInstance: {fileID: 0}
221 | m_PrefabAsset: {fileID: 0}
222 | serializedVersion: 6
223 | m_Component:
224 | - component: {fileID: 963194228}
225 | - component: {fileID: 963194227}
226 | - component: {fileID: 963194226}
227 | m_Layer: 0
228 | m_Name: Main Camera
229 | m_TagString: MainCamera
230 | m_Icon: {fileID: 0}
231 | m_NavMeshLayer: 0
232 | m_StaticEditorFlags: 0
233 | m_IsActive: 1
234 | --- !u!81 &963194226
235 | AudioListener:
236 | m_ObjectHideFlags: 0
237 | m_CorrespondingSourceObject: {fileID: 0}
238 | m_PrefabInstance: {fileID: 0}
239 | m_PrefabAsset: {fileID: 0}
240 | m_GameObject: {fileID: 963194225}
241 | m_Enabled: 1
242 | --- !u!20 &963194227
243 | Camera:
244 | m_ObjectHideFlags: 0
245 | m_CorrespondingSourceObject: {fileID: 0}
246 | m_PrefabInstance: {fileID: 0}
247 | m_PrefabAsset: {fileID: 0}
248 | m_GameObject: {fileID: 963194225}
249 | m_Enabled: 1
250 | serializedVersion: 2
251 | m_ClearFlags: 1
252 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
253 | m_projectionMatrixMode: 1
254 | m_GateFitMode: 2
255 | m_FOVAxisMode: 0
256 | m_SensorSize: {x: 36, y: 24}
257 | m_LensShift: {x: 0, y: 0}
258 | m_FocalLength: 50
259 | m_NormalizedViewPortRect:
260 | serializedVersion: 2
261 | x: 0
262 | y: 0
263 | width: 1
264 | height: 1
265 | near clip plane: 0.3
266 | far clip plane: 1000
267 | field of view: 60
268 | orthographic: 0
269 | orthographic size: 5
270 | m_Depth: -1
271 | m_CullingMask:
272 | serializedVersion: 2
273 | m_Bits: 4294967295
274 | m_RenderingPath: -1
275 | m_TargetTexture: {fileID: 0}
276 | m_TargetDisplay: 0
277 | m_TargetEye: 3
278 | m_HDR: 1
279 | m_AllowMSAA: 1
280 | m_AllowDynamicResolution: 0
281 | m_ForceIntoRT: 0
282 | m_OcclusionCulling: 1
283 | m_StereoConvergence: 10
284 | m_StereoSeparation: 0.022
285 | --- !u!4 &963194228
286 | Transform:
287 | m_ObjectHideFlags: 0
288 | m_CorrespondingSourceObject: {fileID: 0}
289 | m_PrefabInstance: {fileID: 0}
290 | m_PrefabAsset: {fileID: 0}
291 | m_GameObject: {fileID: 963194225}
292 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
293 | m_LocalPosition: {x: 0, y: 1, z: -10}
294 | m_LocalScale: {x: 1, y: 1, z: 1}
295 | m_Children: []
296 | m_Father: {fileID: 0}
297 | m_RootOrder: 0
298 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
299 |
--------------------------------------------------------------------------------
/Assets/InitTestScene637117790264092380.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 11
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_UseShadowmask: 1
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 2
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | accuratePlacement: 0
121 | debug:
122 | m_Flags: 0
123 | m_NavMeshData: {fileID: 0}
124 | --- !u!1 &403350796
125 | GameObject:
126 | m_ObjectHideFlags: 0
127 | m_CorrespondingSourceObject: {fileID: 0}
128 | m_PrefabInstance: {fileID: 0}
129 | m_PrefabAsset: {fileID: 0}
130 | serializedVersion: 6
131 | m_Component:
132 | - component: {fileID: 403350799}
133 | - component: {fileID: 403350798}
134 | - component: {fileID: 403350797}
135 | m_Layer: 0
136 | m_Name: Code-based tests runner
137 | m_TagString: Untagged
138 | m_Icon: {fileID: 0}
139 | m_NavMeshLayer: 0
140 | m_StaticEditorFlags: 0
141 | m_IsActive: 1
142 | --- !u!114 &403350797
143 | MonoBehaviour:
144 | m_ObjectHideFlags: 0
145 | m_CorrespondingSourceObject: {fileID: 0}
146 | m_PrefabInstance: {fileID: 0}
147 | m_PrefabAsset: {fileID: 0}
148 | m_GameObject: {fileID: 403350796}
149 | m_Enabled: 1
150 | m_EditorHideFlags: 0
151 | m_Script: {fileID: 11500000, guid: 3cf5cb9e1ef590c48b1f919f2a7bd895, type: 3}
152 | m_Name:
153 | m_EditorClassIdentifier:
154 | --- !u!114 &403350798
155 | MonoBehaviour:
156 | m_ObjectHideFlags: 0
157 | m_CorrespondingSourceObject: {fileID: 0}
158 | m_PrefabInstance: {fileID: 0}
159 | m_PrefabAsset: {fileID: 0}
160 | m_GameObject: {fileID: 403350796}
161 | m_Enabled: 1
162 | m_EditorHideFlags: 0
163 | m_Script: {fileID: 11500000, guid: 102e512f651ee834f951a2516c1ea3b8, type: 3}
164 | m_Name:
165 | m_EditorClassIdentifier:
166 | m_AssembliesWithTests:
167 | - Tests
168 | - Unity.PerformanceTesting
169 | - UnityEngine.TestRunner
170 | testStartedEvent:
171 | m_PersistentCalls:
172 | m_Calls:
173 | - m_Target: {fileID: 403350797}
174 | m_MethodName: TestStarted
175 | m_Mode: 0
176 | m_Arguments:
177 | m_ObjectArgument: {fileID: 0}
178 | m_ObjectArgumentAssemblyTypeName:
179 | m_IntArgument: 0
180 | m_FloatArgument: 0
181 | m_StringArgument:
182 | m_BoolArgument: 0
183 | m_CallState: 2
184 | - m_Target: {fileID: 529358493}
185 | m_MethodName: TestStarted
186 | m_Mode: 0
187 | m_Arguments:
188 | m_ObjectArgument: {fileID: 0}
189 | m_ObjectArgumentAssemblyTypeName:
190 | m_IntArgument: 0
191 | m_FloatArgument: 0
192 | m_StringArgument:
193 | m_BoolArgument: 0
194 | m_CallState: 2
195 | - m_Target: {fileID: 1220940090}
196 | m_MethodName: TestStarted
197 | m_Mode: 0
198 | m_Arguments:
199 | m_ObjectArgument: {fileID: 0}
200 | m_ObjectArgumentAssemblyTypeName:
201 | m_IntArgument: 0
202 | m_FloatArgument: 0
203 | m_StringArgument:
204 | m_BoolArgument: 0
205 | m_CallState: 2
206 | - m_Target: {fileID: 927233561}
207 | m_MethodName: TestStarted
208 | m_Mode: 0
209 | m_Arguments:
210 | m_ObjectArgument: {fileID: 0}
211 | m_ObjectArgumentAssemblyTypeName:
212 | m_IntArgument: 0
213 | m_FloatArgument: 0
214 | m_StringArgument:
215 | m_BoolArgument: 0
216 | m_CallState: 2
217 | testFinishedEvent:
218 | m_PersistentCalls:
219 | m_Calls:
220 | - m_Target: {fileID: 403350797}
221 | m_MethodName: TestFinished
222 | m_Mode: 0
223 | m_Arguments:
224 | m_ObjectArgument: {fileID: 0}
225 | m_ObjectArgumentAssemblyTypeName:
226 | m_IntArgument: 0
227 | m_FloatArgument: 0
228 | m_StringArgument:
229 | m_BoolArgument: 0
230 | m_CallState: 2
231 | - m_Target: {fileID: 529358493}
232 | m_MethodName: TestFinished
233 | m_Mode: 0
234 | m_Arguments:
235 | m_ObjectArgument: {fileID: 0}
236 | m_ObjectArgumentAssemblyTypeName:
237 | m_IntArgument: 0
238 | m_FloatArgument: 0
239 | m_StringArgument:
240 | m_BoolArgument: 0
241 | m_CallState: 2
242 | - m_Target: {fileID: 1220940090}
243 | m_MethodName: TestFinished
244 | m_Mode: 0
245 | m_Arguments:
246 | m_ObjectArgument: {fileID: 0}
247 | m_ObjectArgumentAssemblyTypeName:
248 | m_IntArgument: 0
249 | m_FloatArgument: 0
250 | m_StringArgument:
251 | m_BoolArgument: 0
252 | m_CallState: 2
253 | - m_Target: {fileID: 927233561}
254 | m_MethodName: TestFinished
255 | m_Mode: 0
256 | m_Arguments:
257 | m_ObjectArgument: {fileID: 0}
258 | m_ObjectArgumentAssemblyTypeName:
259 | m_IntArgument: 0
260 | m_FloatArgument: 0
261 | m_StringArgument:
262 | m_BoolArgument: 0
263 | m_CallState: 2
264 | runStartedEvent:
265 | m_PersistentCalls:
266 | m_Calls:
267 | - m_Target: {fileID: 403350797}
268 | m_MethodName: RunStarted
269 | m_Mode: 0
270 | m_Arguments:
271 | m_ObjectArgument: {fileID: 0}
272 | m_ObjectArgumentAssemblyTypeName:
273 | m_IntArgument: 0
274 | m_FloatArgument: 0
275 | m_StringArgument:
276 | m_BoolArgument: 0
277 | m_CallState: 2
278 | - m_Target: {fileID: 529358493}
279 | m_MethodName: RunStarted
280 | m_Mode: 0
281 | m_Arguments:
282 | m_ObjectArgument: {fileID: 0}
283 | m_ObjectArgumentAssemblyTypeName:
284 | m_IntArgument: 0
285 | m_FloatArgument: 0
286 | m_StringArgument:
287 | m_BoolArgument: 0
288 | m_CallState: 2
289 | - m_Target: {fileID: 1220940090}
290 | m_MethodName: RunStarted
291 | m_Mode: 0
292 | m_Arguments:
293 | m_ObjectArgument: {fileID: 0}
294 | m_ObjectArgumentAssemblyTypeName:
295 | m_IntArgument: 0
296 | m_FloatArgument: 0
297 | m_StringArgument:
298 | m_BoolArgument: 0
299 | m_CallState: 2
300 | - m_Target: {fileID: 927233561}
301 | m_MethodName: RunStarted
302 | m_Mode: 0
303 | m_Arguments:
304 | m_ObjectArgument: {fileID: 0}
305 | m_ObjectArgumentAssemblyTypeName:
306 | m_IntArgument: 0
307 | m_FloatArgument: 0
308 | m_StringArgument:
309 | m_BoolArgument: 0
310 | m_CallState: 2
311 | runFinishedEvent:
312 | m_PersistentCalls:
313 | m_Calls:
314 | - m_Target: {fileID: 403350797}
315 | m_MethodName: RunFinished
316 | m_Mode: 0
317 | m_Arguments:
318 | m_ObjectArgument: {fileID: 0}
319 | m_ObjectArgumentAssemblyTypeName:
320 | m_IntArgument: 0
321 | m_FloatArgument: 0
322 | m_StringArgument:
323 | m_BoolArgument: 0
324 | m_CallState: 2
325 | - m_Target: {fileID: 529358493}
326 | m_MethodName: RunFinished
327 | m_Mode: 0
328 | m_Arguments:
329 | m_ObjectArgument: {fileID: 0}
330 | m_ObjectArgumentAssemblyTypeName:
331 | m_IntArgument: 0
332 | m_FloatArgument: 0
333 | m_StringArgument:
334 | m_BoolArgument: 0
335 | m_CallState: 2
336 | - m_Target: {fileID: 1220940090}
337 | m_MethodName: RunFinished
338 | m_Mode: 0
339 | m_Arguments:
340 | m_ObjectArgument: {fileID: 0}
341 | m_ObjectArgumentAssemblyTypeName:
342 | m_IntArgument: 0
343 | m_FloatArgument: 0
344 | m_StringArgument:
345 | m_BoolArgument: 0
346 | m_CallState: 2
347 | - m_Target: {fileID: 927233561}
348 | m_MethodName: RunFinished
349 | m_Mode: 0
350 | m_Arguments:
351 | m_ObjectArgument: {fileID: 0}
352 | m_ObjectArgumentAssemblyTypeName:
353 | m_IntArgument: 0
354 | m_FloatArgument: 0
355 | m_StringArgument:
356 | m_BoolArgument: 0
357 | m_CallState: 2
358 | settings:
359 | filters:
360 | - assemblyNames: []
361 | groupNames: []
362 | categoryNames: []
363 | testNames:
364 | - Tests.HybridPerformanceTest.D
365 | testRepetitions: 1
366 | synchronousOnly: 0
367 | sceneBased: 0
368 | originalScene: Assets/Scenes/SampleScene.unity
369 | bootstrapScene: Assets/InitTestScene637117790264092380.unity
370 | --- !u!4 &403350799
371 | Transform:
372 | m_ObjectHideFlags: 0
373 | m_CorrespondingSourceObject: {fileID: 0}
374 | m_PrefabInstance: {fileID: 0}
375 | m_PrefabAsset: {fileID: 0}
376 | m_GameObject: {fileID: 403350796}
377 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
378 | m_LocalPosition: {x: 0, y: 0, z: 0}
379 | m_LocalScale: {x: 1, y: 1, z: 1}
380 | m_Children: []
381 | m_Father: {fileID: 0}
382 | m_RootOrder: 0
383 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
384 | --- !u!114 &529358493
385 | MonoBehaviour:
386 | m_ObjectHideFlags: 0
387 | m_CorrespondingSourceObject: {fileID: 0}
388 | m_PrefabInstance: {fileID: 0}
389 | m_PrefabAsset: {fileID: 0}
390 | m_GameObject: {fileID: 0}
391 | m_Enabled: 1
392 | m_EditorHideFlags: 0
393 | m_Script: {fileID: 11500000, guid: d44e6804bc58be84ea71a619b468f150, type: 3}
394 | m_Name:
395 | m_EditorClassIdentifier:
396 | --- !u!114 &927233561
397 | MonoBehaviour:
398 | m_ObjectHideFlags: 0
399 | m_CorrespondingSourceObject: {fileID: 0}
400 | m_PrefabInstance: {fileID: 0}
401 | m_PrefabAsset: {fileID: 0}
402 | m_GameObject: {fileID: 0}
403 | m_Enabled: 1
404 | m_EditorHideFlags: 0
405 | m_Script: {fileID: 11500000, guid: 68f09f0f82599b5448579854e622a4c1, type: 3}
406 | m_Name:
407 | m_EditorClassIdentifier:
408 | --- !u!114 &1220940090
409 | MonoBehaviour:
410 | m_ObjectHideFlags: 0
411 | m_CorrespondingSourceObject: {fileID: 0}
412 | m_PrefabInstance: {fileID: 0}
413 | m_PrefabAsset: {fileID: 0}
414 | m_GameObject: {fileID: 0}
415 | m_Enabled: 1
416 | m_EditorHideFlags: 0
417 | m_Script: {fileID: 11500000, guid: f3e1b3cbf3fac6a459b1a602167ad311, type: 3}
418 | m_Name:
419 | m_EditorClassIdentifier:
420 |
--------------------------------------------------------------------------------